round in 2.6 and 2.7

Stefan Sonnenberg-Carstens stefan.sonnenberg at pythonmeister.com
Thu Dec 23 16:02:40 EST 2010


Am 23.12.2010 19:57, schrieb Hrvoje Niksic:
> 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?
Indeed:
http://svn.python.org/view?view=rev&revision=76373



More information about the Python-list mailing list