繁体   English   中英

math.floor() 和 // 产生不同的结果

[英]math.floor() and // produce different results

在 Python3.4 中,我希望操作math.floor()//产生相同的结果。 他们没有。

import math

n=20844627638611523
print (math.floor(n/2))
print (n//2)

印刷:

10422313819305762
10422313819305761

为什么?

问题在于您的表达式 n/2。 这将返回一个浮点数1.0422313819305762e+16 - 你在最后一位数字内失去了一点精度。 有了这种损失,您随后的floor操作会返回意外的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM