[fpc-devel] Wrong floating point Currency calculations

Ondrej Pokorny lazarus at kluug.net
Thu Feb 7 17:33:53 CET 2019


Hello,

when doing floating point calculations with Currency, the results are wrong.

Example:

program Project1;
var
   C0, C1, C2: Currency;
   D0: Double;
begin
   C0 := 4736;
   D0 := C0;
   C1 := C0 * 8 / 72 * 25.4 / 2048;
   C2 := D0 * 8 / 72 * 25.4 / 2048;
   Writeln(C1);
   Writeln(C2);
end.

FPC 3.2 (current trunk) returns different results for C1 and C2:

  6.423600000000000000E+00
  6.526400000000000000E+00

Delphi XE2 returns equal results for C1 and C2:

  6.52640000000000E+0000
  6.52640000000000E+0000

Is this a known bug?

(Btw. I tested on win32.)

Ondrej




More information about the fpc-devel mailing list