On Thu, 12 Aug 2010 18:19:40 -0700, Benjamin Kaplan wrote: > But that's not keeping the number the way it was typed. It's just not > showing you the exact approximation.
Nor is 34.520000000000003 showing you the "exact approximation". The closest "double" to 34.52 is 4858258098025923 / 2**47, whose exact decimal representation is: 34.52000000000000312638803734444081783294677734375 The decimal representation of 1/(2**n) for n>0 always ends in 5. As a consequence of this, the exact decimal representation of any binary floating-point value which isn't itself an integer must end in 5. -- http://mail.python.org/mailman/listinfo/python-list