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.

Responder a