Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

felipebmfaria

[Resolvido] Formatacao moeda e calculo aritmetico

Recommended Posts

Boa tarde,

 

estou tantando efetuar a seguinte operação: ($valor_do_bem - $entrada) + $tac * $coeficiente

 

porém estou com problemas nos números, o calculo nao sai de forma correta.

 

Estou inserindo com mascara de moeda(15.500,00) e o campo é do tipo VARCHAR.

 

Alguma sugestao de boas maneiras para trabalhar com valores e calculos numericos?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você não fala, assumi que o banco de dados é Mysql. Tanto o PHP quanto o Mysql entendem como separador de casas decimais o ponto e não a vírgula. Para trabalhar número com ponto flutuante no Mysql use FLOAT(10,2) onde 10 é a quantidade antes da vírgula e 2 é a quantidade depois da vírgula. Salve os dados no banco sem máscara, colocando-a somente na hora de exibir.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você não fala, assumi que o banco de dados é Mysql. Tanto o PHP quanto o Mysql entendem como separador de casas decimais o ponto e não a vírgula. Para trabalhar número com ponto flutuante no Mysql use FLOAT(10,2) onde 10 é a quantidade antes da vírgula e 2 é a quantidade depois da vírgula. Salve os dados no banco sem máscara, colocando-a somente na hora de exibir.

 

Carlos Eduardo

 

 

Estou usando:

 

$valor_parcelas1 = ($valor_bem = '24000' - $entrada) + $valor_tac = '500';
$valor_parcelas = $valor_parcelas1 * $coeficiente = '0,5' ;  

o tipo do campo "coeficiente" é float (10,2) mas o resultado deste calculo dá zero, sendo que se eu definir $coeficiente com um valor inteiro ele roda certinho!

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda nao encontrei uma solucao para o problema.

 

Vamos por partes, jah que estou com mais de uma duvida.

 

O mysql e o PHP entendem como separador de casas decimais somente o ".", ok? Entao como posso representar o valor R$6.201,57?

 

A questao eh mais ou menos a seguinte: Preciso de uma forma de calcular uma formula com valores assim:

 

(6.201,57 - 2.000,00 ) + 0,01435 * 0,09778 

Grato desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao como posso representar o valor R$6.201,57?

 

Grava no banco 6201.57, faz todos os cálculos usando este formato e na hora de exibir para o usuário, usa o number_format.

http://br.php.net/number_format

 

(6.201,57 - 2.000,00 ) + 0,01435 * 0,09778

Fica assim

 

(6201.57 - 2000.00 ) + 0.01435 * 0.09778

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias,

 

 

acho que deu certo, estou apenas esperando receber uma tabela com valores reais para eu poder testar e ver se esta batendo.

 

pelos meus testes esta tudo ok!

 

1º usei um str_replace para substituir a virgula por ponto e gravar no banco no padrao americano.(com ponto)

 

2º para exibir eu dei dois str_replace; um para colocar vazio no lugar do ponto e outro para colocar virgula onde tiver ponto, ou seja, exibir no padrao brasileiro.

 

3º usei tambem um number_format para exibir somente duas casas decimais depois da vírgula.

 

 

Acho que foi só isso.

 

Muito obrigado pela atenção e paciencia, valeu.

 

Abçs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.