NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/44741: strtod convert 0.010000000000000000057612911342378542997169 incorrectly



The bug is incorrect and should be closed.

strtod returns a number bit-to-bit identical to a floating-point
literal 0.010000000000000000057612911342378542997169. I use gcc 4.1.3.

I also checked using math/gsl and bc(1) that a binary representation of
that literal (1.0100011110101110000101000111101011100001010001111011*2^-7)
is closer to original decimal value than two nearest binaries (with 010
and 100 in least significant places).

literal: 0.010000000000000000057612911342378542997169

bin:     1.0100011110101110000101000111101011100001010001111010*2^-7
dec:     0.0099999999999999984734433411404097569175064563751220703125
diff:   -0.0000000000000000015841695702019687860796625436248779296875

bin:     1.0100011110101110000101000111101011100001010001111011*2^-7
dec:     0.01000000000000000020816681711721685132943093776702880859375
diff:    0.00000000000000000015055390577483830833226193776702880859375 <- 
smallest

bin:     1.0100011110101110000101000111101011100001010001111100*2^-7
dec:     0.010000000000000001942890293094023945741355419158935546875
diff:    0.000000000000000001885277381751645402744186419158935546875



Home | Main Index | Thread Index | Old Index