Re: [firebase-br] Melhor forma de criar campo Código e Dinheiro, qual?

Eduardo Bahiense eduardo em icontroller.com.br
Dom Abr 22 16:14:41 -03 2007


Fellipe Henrique escreveu:
> Olá Eduardo, existe alguma explicação para isso, digo, que é melhor usar 
> double do que integer.. tipo, processamento e tals..

Olá Felipe

Já li bastante sobre isso, mas sinceramente, é tudo muito chato. 
Operações de ponto flutuante são feitas em termos de propabilidade, 
assim, 2+2 algumas vezes dá 3,9999999999999999, e por incrível que 
pareça, dizem ser mais precisas para cálculos científicos. Um problema 
sério dessas operações é que o critério de arredondamento depende do 
processador da máquina. Assim, em um computador, 2+2 é 4 e em outo é 
3,99999. Imagine o mesmo sistema, em uma mesma rede, obtendo resultados 
diferentes conforme a máquina (vi isso acontecer).
As operações com currency ou bcd são consideradas para corresponder à 
lógica financeira e oferecer precisão neste quesito. Com elas você tem 
certeza que se a pessoa reproduzir o cálculo em uma calculadora, vai dar 
a mesma coisa.
Quanto à performance, para o processamento, double é extremamente mais 
rápido. Para a percepção humana, uma operação realizada e 3 milionésimos 
de segundo, contra 6 milionésimos, não faz a menor diferença. Assim, a 
menos que estejamos falando de processamentos extensos como renderização 
de imagens e outros, não há diferença quanto à performance.

Bem, utilizei apenas a minha memória para escrever estas linhas. Posso 
dizer que depois que deixei de utilizar double e single no delphi, nunca 
mais sofri com arredondamentos. Se falei alguma besteira (espero que 
não), por favor alguém me corrija.

[]s Eduardo





Mais detalhes sobre a lista de discussão lista