在Python 3.4中,我希望操作math.floor()
和//
产生相同的结果。他们没有。
import math
n=20844627638611523
print (math.floor(n/2))
print (n//2)
打印:
10422313819305762
10422313819305761
为什么?
问题出在表达式n/2中。这将返回一个浮点1.0422313819305762e+16
——您在最后一个数字中丢失了一点精度。有了这种损失,您随后的floor
操作将返回意外的结果。