python2和python3中float的差异?

时间:2015-03-21 13:41:20

标签: python python-2.7 python-3.x

我编写了这些简单的行并在python 2/3上运行它们。

i=1.194857193845710948754654
print(len(str(i)))

我有2个不同的输出。这是什么原因?如何在python2中实现相同的输出?

输出python2:

>>> 13

输出python3:

>>> 18

1 个答案:

答案 0 :(得分:1)

这是因为浮动的str()实现方式不同,可以轻松验证。

实际的浮点精度是相同的。

$ python2
Python 2.7.9
>>> i=1.194857193845710948754654
>>> i
1.1948571938457109
>>> str(i)
'1.19485719385'
>>> 
$ python3
Python 3.4.3
>>> i=1.194857193845710948754654
>>> i
1.1948571938457109
>>> str(i)
'1.1948571938457109'
>>>