【发布时间】:2015-06-07 09:03:18
【问题描述】:
我是 Python 新手,在尝试运算符时,我遇到了这个问题:
>>> 7.0 / 3
2.3333333333333335
结果不应该是 2.3333333333333333 还是 2.3333333333333334。为什么要这样四舍五入呢?
另外,关于 Python 2.7 中的楼层划分,我的结果是:
>>> 5 / 2
2
>>> 5 // 2
2
>>> 5.0 / 2
2.5
>>> 5.0 // 2
2.0
所以我的观察是,即使在浮点数的情况下,地板除法也会返回整数商,而普通除法返回十进制值。这是真的吗?
【问题讨论】:
-
如需进一步阅读,请参阅docs.python.org/3/library/decimal.html。
-
另外,Python 3 的除法运算符自 Python 2 以来发生了一些变化:python3porting.com/differences.html#integer-division
-
当你显示一个浮点数时,它必须从位模式转换为文本字符串。这是很多工作,并且有不同的方法可以做到这一点。您看到的不一定是数字在内部的存储方式。另外,为了好玩,请查看显示时的输出与
print 7.0/3之间的差异。 python 2和3也有区别。