【发布时间】:2014-08-06 18:09:34
【问题描述】:
number = 9.3
while number % 0.5 != 0:
number -= 0.1
print number
-20.0
我预计 number 最终会将此 while 循环保留为 9.0,但不知何故它变成了 -20.0。请注意,如果我将数字更改为 9.2,它会按预期工作并变为 9.0。有些值有效,例如 9.0、9.7,有些无效,例如 9.4、9.8。我不知道为什么。顺便说一句,9.8 变成了 -1204.5,这更奇怪。我无法解释这些结果。如果我刚刚开始学习计算机编程,因此遗漏了一些基本知识,请见谅。
【问题讨论】:
-
Floating point math 是问题所在。
-
尝试改用
fractions模块。 -
或者可能是
decimal。
标签: python math while-loop floating-point modulo