Representation of floats (-> Mark Dickinson?)

jmfauth wxjmfauth at gmail.com
Tue Sep 6 15:37:51 CEST 2011


This is just an attempt to put the
http://groups.google.com/group/comp.lang.python/browse_thread/thread/a008af1ac2968833#
discussion at a correct level.

With Python 2.7 a new float number representation (the David Gay's
algorithm)
has been introduced. If this is well honored in Python 2.7, it
seems to me, there are some missmatches in the Py3 series.

>>> sys.version
'2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit
(Intel)]'
>>> 0.1
0.10000000000000001
>>> print 0.1
0.1
>>> 1.1 * 1.1
1.2100000000000002
>>> print 1.1 * 1.1
1.21
>>> print repr(1.1 * 1.1)
1.2100000000000002
>>>


>>> sys.version
2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
>>>
>>> 0.1
0.1
>>> print 0.1
0.1
>>> 1.1 * 1.1
1.21
>>> print 1.1 * 1.1
1.21
>>> print repr(1.1 * 1.1)
1.2100000000000002
>>>


>>> sys.version
'3.1.4 (default, Jun 12 2011, 15:05:44) [MSC v.1500 32 bit (Intel)]'
>>> 0.1
0.1
>>> print(0.1)
0.1
>>> 1.1 * 1.1
1.2100000000000002
>>> print(1.1 * 1.1)
1.21
>>> print(repr(1.1 * 1.1))
1.2100000000000002
>>> '{:g}'.format(1.1 * 1.1)
'1.21'



>>> sys.version
'3.2.2 (default, Sep  4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)]'
>>> 0.1
0.1
>>> print(0.1)
0.1
>>> 1.1 * 1.1
1.2100000000000002
>>> print (1.1 * 1.1)
1.2100000000000002
>>> print(repr((1.1 * 1.1)))
1.2100000000000002
>>>
>>> '{:g}'.format(1.1 * 1.1)
'1.21'
>>>

jmf



More information about the Python-list mailing list