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