[Lazarus] Problem with fpc-3.0.4 and double
Marco van de Voort
marcov at stack.nl
Fri Feb 2 16:10:17 CET 2018
On Wed, Jan 31, 2018 at 07:31:56PM +0100, zeljko via Lazarus wrote:
> > Using binary floats, there are just too many values that can't be
> > represented 100%, regardless of the length of the mantissa.
> > https://en.wikipedia.org/wiki/Floating-point_arithmetic#Accuracy_problems
> Thanks Ralf, I know what is floating point arithmetic, but something is
> changed between 3.0.2 and 3.0.4 and I want to know what it is.
It could be as simple as slightly different codegeneration that eliminates a
temporary variable or adds it.
The x87 CPU calculates with 80-bits, but storing it into a double variable
(e.g. a local variable on the stack) will round it to 64-bit double. This
can cause small precision fluctuations, and, as with all regular float
comparison issues, it is something of all times and all compilers.
More information about the Lazarus