python2和python3之间的精确差异

时间:2017-06-12 10:50:40

标签: python-3.x

我想了解python2和python3之间的区别:

$ python2
Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
>>> print(2.2*55)
121.0

$ python3
Python 3.4.5 (default, May 29 2017, 15:17:55)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
>>> print(2.2*55)
121.00000000000001

我想这与精确度有关,但我如何让python3给我121.0

由于

1 个答案:

答案 0 :(得分:1)

这与算术的精确度无关,它只与输出格式有关:

>>> print("%.20f" % (2.2))
2.20000000000000017764

罪魁祸首是2.2不能表示为浮点数。它四舍五入到了接近的地方:

Decimal

如果您不希望在输出中看到多个零后跟数字,则限制输出精度。如果您想要更多的十进制友好算术,可以使用@botfather类型。

另请参阅此问题:Python format default rounding when formatting float number