[fpc-devel] MySQL 5.1 and Double (trouble)
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Mon Jul 11 18:55:37 CEST 2011
Andrew Brunner schrieb:
>> It doesn't make sense to display more digits than stored in the binary
>> variable. There is no loss, only rounding errors in the conversion from
>> binary to decimal text.
>
> I need to compare values with complete precision. I don't think this
> problem was present a while ago.
Floating point numbers never should be compared for equality. Better:
if abs(a-b) < delta then ...
with delta corresponding to the available accuracy (e.g. 1E-15).
As a rule of thumb: 10^3 ~ 2^10, i.e. 3 decimal digits require 10 bits
in the significand, so that 52 bits allow for 52*3/10 ~ 15 digits.
> When the memory is copied is there a missing 12bits? Is there going
> to be a fix for this?
The binary value consists of an exponent and an significand (mantissa),
most probably you forgot to count the exponent and sign bits.
I'd suggest that you read a bit about using floating point numbers. They
never are accurate, and every decimal representation adds more
inaccuracy :-(
DoDi
More information about the fpc-devel
mailing list