O edit2 ficou igual ao edit1 (edit1=1,5 -> edit2=1,5)

Bruno Lichot <[EMAIL PROTECTED]> escreveu:          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]



                         

       
---------------------------------
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

[As partes desta mensagem que não continham texto foram removidas]

Responder a