Floating point bug?
Diez B. Roggisch
deets at nospam.web.de
Thu Feb 14 09:17:01 CET 2008
Preston Landers schrieb:
> marek.rocki at wp.pl(marek.rocki at wp.pl)@2008.02.13 15:13:20 -0800:
>> Not a bug. All languages implementing floating point numbers have the
>> same issue. Some just decide to hide it from you. Please read
>> http://docs.python.org/tut/node16.html and particularly
> This is true. Fortunately Python does provide a module which allows
> you to work with exact floating point quantities.
That's a misconception. The decimal-module has a different base (10
instead of 2), and higher precision. But that doesn't change the fact
that it will expose the same rounding-errors as floats do - just for
>>> import decimal as d
>>> d = d.Decimal
>>> d("1") / d("3") * d("3")
The advantage is that the rounding errors are the ones expected in
monetary caluclations, which means that you can write correct programs
for such purposes.
More information about the Python-list