Floating point errors?

David Lees debl at nospammytheworld.com
Thu May 10 20:43:28 EDT 2001


John,

You are correct that my terminology is wrong (too many years since 9th
grade).  The problem is that 3/10, when divided out in base 10 has a
repeating decimal value of zero.  However, when you do the division base
2, the repeating decimal is non-zero, so you end up having to truncate
at however many bits go into the floating point mantissa.

david lees

"John J. Lee" wrote:
> 
> On Thu, 10 May 2001, David Lees wrote:
> 
> > Complexity has nothing to do with rounding.  Try:
> >
> > >>> 2.3-2.0
> > 0.29999999999999982
> >
> >
> > Rounding is exactly the issue and this looks like the old classic
> > problem, namely rational numbers in one base (say 10) can be irrational
> > in another base (say 2)
> 
> Rationality is a property of numbers, not their representation.  0.3 is a
> rational number because you can represent it as a ratio of two integers,
> which is as true in binary as it is in decimal.  I know what you mean,
> though.
> 
> John



More information about the Python-list mailing list