【发布时间】:2016-10-01 21:13:18
【问题描述】:
在 Python 2.7 和 3.x 中,为什么整数除法在除以数字 0 < x < 1 时会给出不正确的数字?
负数 -1 < x < 0 甚至可以正常工作:
>>> 1//.1
9.0
>>> 1//-.1
-10.0
我知道带有负数(或正数)的整数除法会向负无穷大舍入,但是我认为1//.1 应该导致10.0,因为1 可以除以.1 而没有余数。
【问题讨论】:
-
楼层划分。看到这个帖子:stackoverflow.com/questions/5535206/…
-
floor(1/.1) 应该等于 10
-
可能是Is floating point math broken?的另一个神器
-
@Gilgamesh 这并不能解释为什么
1 // 0.1与floor(1 / 0.1)不一样 -
@Hurkyl 没有必要 "expect" 任何事情,但是如果
1//0.1 != math.floor(1/0.1),这个问题应该得到一个答案,说明原因(或者至少是解释该细节的问题)。
标签: python floating-point integer-division