Re: [Cascavel-pm] informações sobre cálculos númericos

Nilson Santos Figueiredo Junior acid06 em gmail.com
Quarta Setembro 21 18:06:34 PDT 2005


> Pois eu trabalho com dinheiro usando os operadores matemáticos normais e
> arredondando para duas casas decimais... Me mostre um caso real onde
> isso não vai funcionar (exceto para a divisão, onde deve haver um
> cuidado maior) e vou me preocupar...

Isso costuma dar problemas quando você tem que, por exemplo, guardar
em campos separados os valores de impostos diferentes e do valor sem
impostos de alguma coisa e as coisas têm valor muito baixo.

A minha recomendação pra se mexer com dinheiro é: não use float.
Guarde tudo em termo de centavos, usando inteiros. Isso funciona
perfeitamente bem em Perl para números de até 2**49, ou seja, você
consegue representar nativamente usando somente inteiros até R$
5.629.499.534.213,12 (ou seja, 562949953421312 centavos). Isso é um
número bem grande e serve pra grande maioria das coisas... Sempre que
for mandar pra tela, simplesmente coloque a vírgula ou divida por 100
na hora, mas contas internas *sempre* com inteiros...

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm