[fpc-pascal] Why this evaluates on "if" wrong ?
Daniël Mantione
daniel.mantione at freepascal.org
Sun Oct 28 19:08:09 CET 2007
Op Sun, 28 Oct 2007, schreef Milan Marusinec:
> Hello folks,
>
> This one looks pretty elementary, but to my big surprise
> it doesn't work as I would expect.
>
> I'd like to ask FreePascal compiler creators, how can I safely
> evaluate double variables in case like this.
>
> Sample program with comment is in attachement ...
If you do on a hand calculator:
1/3
... you will see:
0.33333333333
If you multiply again with 3, you will see:
0.99999999999
... and not 1.00000000000.
There is a similar issue here. The value "0.4" cannot be stored exactly in
a computer, therefore it is rounded.
This behaviour normal and while annoying, it is simply how things work
in the digital world, you will have to work around it.
Daniël
More information about the fpc-pascal
mailing list