Jump to content


Photo

Dúvida Em Visualizar Preços


  • Faça o login para participar
12 replies to this topic

#1 Flasheiro

Flasheiro

    Normal

  • Usuários
  • 109 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 16/04/2007, 14:25

Olá, estou usando o seguinte código :

$valor = $quantidade * 7.50;

Mas ele aparece: R$ 262.5
Preciso que apareça o zero no final : R$ 262.50


Valeuuuuuuuu

#2 Draziw

Draziw

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 16/04/2007, 14:30

Eu tentaria algo assim:

$valor = $quantidade * 7.50;
$int = intval($valor);
if ($valor == $int) {
echo "R$ ".$valor.".00";
}else{
echo "R$ ".$valor."0";
}

Não sou muito experiente, mas espero ter ajudado.
Abraços

Edição feita por: Draziw, 16/04/2007, 14:33.


#3 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/04/2007, 14:31

Ué mas o correto é aparecer 262.5 já que você esta multiplicando por 35, para aparecer do jeito que você quer é necessário calcular assim.

750 * 35


Falopa!

#4 Evitark

Evitark

    Normal

  • Usuários
  • 67 posts
  • Sexo:Masculino

Posted 16/04/2007, 15:00

Pessoal, tem uma função própria para formatar números ;)

$valor = number_format( ($quantidade*7.50 ) ,2);

B)

#5 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/04/2007, 15:11

Evitark
O problema dele não está em como o numero deve ser apresentado e sim em como ele deve ser calculado, claro que number_format() será necessária após o calculo.

Falopa!

#6 Evitark

Evitark

    Normal

  • Usuários
  • 67 posts
  • Sexo:Masculino

Posted 16/04/2007, 15:30

Evitark
O problema dele não está em como o numero deve ser apresentado e sim em como ele deve ser calculado, claro que number_format() será necessária após o calculo.

Falopa!


Não vejo por que ele deveria eliminar as casas decimais, fazer a multiplicação, e depois colocar novamente a casa decimal. O código que eu passei funciona perfeitamente, e ocupa uma linha só.

#7 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 16/04/2007, 15:56

Evitark
Se você olhar o meu post verá que citei o motivo, o problema dele é que ele está calculando da forma errada.

Se você analizar quando ele calcula

750 * 35

ele terá o resultado

26250

que ao se utilizar
number_format($resultado, 2)
resultara em

262.50

mas, se ele fizer do geito que ele citou no inicio utilizando as casas decimais o resultado do calculo seria 262.50 mas não é o valor real, sendo assim ficaria incorreto o resultado de todo o processo.

################
EDITADO
Coloca o valor 1000 dentro de number_format() e vê o resultado.


Falopa!

Edição feita por: hostdesigner, 16/04/2007, 16:04.


#8 Evitark

Evitark

    Normal

  • Usuários
  • 67 posts
  • Sexo:Masculino

Posted 16/04/2007, 16:04

Desculpe, mas acho que você está complicando demais algo que pode ser simples.
O que quer dizer com "35 * 7.50 não retorna um valor real"?

Tudo que ele precisa é de 2 casas depois da vírgula...

#9 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 16/04/2007, 16:06

Valor real = valor correto. (é o que eu entendi.)

Edição feita por: Inu, 16/04/2007, 16:07.


#10 Evitark

Evitark

    Normal

  • Usuários
  • 67 posts
  • Sexo:Masculino

Posted 16/04/2007, 16:15

EDITADO
Coloca o valor 1000 dentro de number_format() e vê o resultado.


Fazendo isso você estará passando um valor INTEGER para um argumento que deve ser FLOAT...

Aliás, colocar 1000 como primeiro argumento da função number_format, além de incorreto, não prova nada. Dê uma olhada na descrição da função no site do PHP, e você verá que até mesmo com números FLOAT a função irá dividir com vírgula os milhares, e com ponto o decimal. Isso acontece pois o sistema de formatação monetária dos EUA é diferente do brasileiro, que usa ponto para separar o milhar e vírgula para separar o decimal.

Desculpe, mas ainda não ví nenhuma explicação correta sobre o porque não devemos multiplicar valores FLOAT.

Edição feita por: Evitark, 16/04/2007, 16:21.


#11 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 17/04/2007, 16:21

Tente

$valor = "75";

echo number_format($valor,2,',','.');

Abraços
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#12 Evitark

Evitark

    Normal

  • Usuários
  • 67 posts
  • Sexo:Masculino

Posted 18/04/2007, 00:41

Aí sim, se você especificar o divisor de milhar e decimal, funciona corretamente.
O que eu não entendi AINDA, e pelo visto ele mesmo não sabe explicar, é porque não devo usar números float em uma multiplicação.
Achei completamente desnecessário fazer a conversão para inteiro, multiplicar, depois voltar para float.

#13 Flasheiro

Flasheiro

    Normal

  • Usuários
  • 109 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 18/04/2007, 08:26

pessoal obrigado mesmo pela ajuda.
como era urgente usei o código do nosso amigo Draziw




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq