[firebase-br] Arredondamento de Parcelas

sicnemelpor em gmail.com sicnemelpor em gmail.com
Seg Set 25 13:25:12 -03 2006


O problema de arredondamento é de como a linguagem (=compilador) trata os  
números. Se estiverem em ponto flutuante, SEMPRE vai ter problemas deste  
tipo para valores monetários. O ideal é então você tratar como inteiros  
com escala (*100 na entrada e /100 na apresentação) para ter duas casas, e  
sempre fazer operações com inteiros. Ou desenvolver uma biblioteca de  
números em BCD, que é ideal pra valores monetários (lembram do COBOL??).

[]s
Nelson Sicuro

> ==não é culpa de linguagem, vc deve tratar o arredondamento manualmente.
>
> tentei fazer deste jeito que vc falou, mas ele não acha a diferença
> Eu fiz esta conta :
>
> 855,00 - 12,33 = 842,67
> 842,67 / 2 = 421,335   ==== aqui vc deve arredondar para 2 casas, ficando
> 421,34
> 421,335 * 2   =   842,67   ==== aqui deverá ficar 421,34
>
> o formato dos campos é currency, tem como formatar ele para pegar apenas  
> 2
> casas após a virgula?
>
> tentei o FormatCurrency, mas não consegui usar.
>
> obrigado pela tentativa.
>
>
> ==== procure na internet, existem várias funções para arredondamento no
> delphi.
> sempre que for calcular valores monetários, use a função, exemplo:
> dm.parcela.fieldbyname('valor').asfloat:=arredonda(dm.notaValor.asfloat /
> 3);
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço  
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa






Mais detalhes sobre a lista de discussão lista