wormwood_3 wrote: > The second case is, of course, what is throwing me. By having a decimal > point, "1.1" is a float type, and apparently it cannot be represented by > binary floating point numbers accurately. I must admit that I do not > understand why this is the case. Would anyone be able to enlighten me?
This is fairly standard computer science, not just Python. If you take freshman Fortran for scientists, you will eat, sleep, and breath this stuff. Is one tenth any power of 2? Like how 2**-1 is 0.5? Or how 2**-2 is 0.25? Or 2**-3 is 0.125? Or 2**-4 is 0.0625. Oops, we went right by 0.1. Any binary representation of one tenth will have a round-off error in the mantissa. See http://docs.python.org/tut/node16.html for a Pythonic explanation. See http://en.wikipedia.org/wiki/IEEE_floating-point_standard for how it is implemented on most platforms. This problem was solved in Python 2.4 with the introduction of the Decimal module into the standard library: http://docs.python.org/lib/module-decimal.html http://www.python.org/dev/peps/pep-0327/ -- Sincerely, Chris Calloway http://www.seacoos.org office: 332 Chapman Hall phone: (919) 962-4323 mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor