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.