相关疑难解决方法(0)

为什么str(float)在Python 3中返回的数字比Python 2多?

在Python 2.7中,repra float返回最接近17位数的最接近的十进制数; 这足够精确,可以唯一地标识每个可能的IEEE浮点值.str一个float类似的工作,除了它将结果限制为12位数; 对于大多数用途,这是一个更合理的结果,并使您免受二进制和十进制表示之间的细微差别.

Python 2演示:http://ideone.com/OKJtxv

print str(1.4*1.5)
2.1
print repr(1.4*1.5)
2.0999999999999996
Run Code Online (Sandbox Code Playgroud)

在Python 3.2中它出现strrepr返回相同的东西.

Python 3演示:http://ideone.com/oAKRsb

print(str(1.4*1.5))
2.0999999999999996
print(repr(1.4*1.5))
2.0999999999999996
Run Code Online (Sandbox Code Playgroud)

是否存在描述变更的PEP或负责人的其他声明?

python python-2.7 python-3.x floating-point-conversion

23
推荐指数
1
解决办法
1604
查看次数