我想了解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
由于
答案 0 :(得分:1)
这与算术的精确度无关,它只与输出格式有关:
>>> print("%.20f" % (2.2))
2.20000000000000017764
罪魁祸首是2.2不能表示为浮点数。它四舍五入到了接近的地方:
Decimal
如果您不希望在输出中看到多个零后跟数字,则限制输出精度。如果您想要更多的十进制友好算术,可以使用@botfather
类型。
另请参阅此问题:Python format default rounding when formatting float number