Understood, ok. Thanks for your explanation.
___
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
On 11/11/2022 11:49, Thomas Kurz via fpc-pascal wrote:
Why do I have to explicitly cast Integer to Double here?
Because 1.2E6 can be represented exactly by single precision.
You can use -CF64 to force floating point constants to have at least 64
bits precision. Or you can use {$excessprecisio
Hello,
by chance, I stumbled upon a strange behavior in floating-point calculation.
Here's the example:
program Project1;
var
f: double;
n: integer = 1758;
m: integer = 0;
begin
f := n * 1.2E6 + (2*m+1) * 50E3; // 2109650048
f := Double(n) * 1.2E6 + Double(2*m+1) * 50E3; // 210965000