I stumbled upon this. Python 2.6: Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 9.95 9.9499999999999993 >>> "%.16g" % 9.95 '9.949999999999999' >>> round(9.95, 1) 10.0
So it seems that Python is going out of its way to intuitively round 9.95, while the repr retains the unnecessary digits. However, with 2.7 it's exactly the opposite: Python 2.7.0+ (r27:82500, Sep 15 2010, 18:04:55) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 9.95 9.95 >>> "%.16g" % 9.95 '9.949999999999999' >>> round(9.95, 1) 9.9 Is the change to round() expected? -- http://mail.python.org/mailman/listinfo/python-list