Já tentou usar a funcao simpleroundto da unit math?
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de fabio_giro Enviada em: sexta-feira, 11 de janeiro de 2008 15:28 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Erro de arredondamento Tenho um relatório que faz o seguinte cálculo: taxa1 e taxa2 : double; taxa1 := 161,5 * (3 /100); (resultado = 4,845) taxa2 := strtofloat(formatfloat('#####0.00',taxa1)); Na primeira vez que executo o programa o resultado da taxa2 = 4,80 . Se o usuário rodar o relatório novamente, SEM SAIR DO SISTEMA, o reultado da taxa2 = 4,85 Baseado nisso, resolvi fazer o seguinte teste: criei uma aplicação nova, coloquei 2 edit´s e 1 botão e fiz o seguinte: procedure TForm1.Button1Click(Sender: TObject); var tx : double; begin tx := strtofloat(edit1.text); tx := round(tx); edit2.text := floattostr(tx); end; se edit1 = 1,5 -> edit2 = 2 se edit1 = 2,5 -> edit2 = 2 se edit1 = 3,5 -> edit2 = 4 se edit1 = 4,5 -> edit2 = 4 ou seja, quando a parte inteira é impar arredonda. Alguém poderia me explicar? Testei no D7. Agradeço antecipadamente. __________ NOD32 2783 (20080111) Information __________ This message was checked by NOD32 antivirus system. part000.txt - is OK part001.htm - is OK http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]