为什么在while循环中添加0.01会打印出奇怪的数字?

时间:2019-06-10 19:26:59

标签: python while-loop python-3.7

所以我创建了一个x x == 10加0.01的时刻,但是它输出数字到4dp,依此类推,也降低了结尾。

x = 0
c = 0 #count of numbers
while x <= 10:
    x += 0.01
    c += 1
    print (x)
print(c)

预期结果 0.01、0.02、0.03 结果似乎变为0.06

0.01 0.02 0.03 0.04 0.05 0.060000000000000005 0.07 0.08 0.09 0.09999999999999999 中间的东西 9.959999999999832 9.969999999999832 9.979999999999832 9.989999999999831 9.999999999999831 10.009999999999831

1 个答案:

答案 0 :(得分:1)

我猜这是因为浮点舍入行为。有趣的是,您可以在for循环中按十进制值进行迭代,但是浮点加法的不可靠行为(根据我的说法)使此操作不合要求。