0

我有 4 个嵌套的 while 循环,它们看起来都类似于下面的一个

x = 0.0    
while x <= 1.0:
    ls_alloc[0] = x
    x = x + 0.1

我想要它做的是每次在 x <= 1.0 时将 0.1 添加到 x 我遇到的问题是它实际上从未进入 while 循环x = 1.0

我正在使用 python 2.7

4

1 回答 1

8

问题是0.1不能完全表示为float. 相反,您得到的是一个略大于 的数字0.1

In [2]: '%.20f' % 0.1
Out[2]: '0.10000000000000000555'

这会减少您可能期望的循环迭代次数。此外,x永远不要精确命中1.0(即使后者可以精确表示)。

值得注意的是,这种行为通常是浮点运算的属性,绝不是 Python 特有的。

于 2013-03-21T19:47:07.450 回答