Python while循环没有按预期循环多次

Mik*_*han 0 python loops while-loop

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

x = 0.0    
while x <= 1.0:
    ls_alloc[0] = x
    x = x + 0.1
Run Code Online (Sandbox Code Playgroud)

我想要它做的是每次添加0.1到x,而它是<= 1.0我遇到的问题是它从来没有真正进入while循环 x = 1.0

我正在使用python 2.7

NPE*_*NPE 8

问题是0.1不能完全表示为a float.你得到的是一个略大于的数字0.1:

In [2]: '%.20f' % 0.1
Out[2]: '0.10000000000000000555'
Run Code Online (Sandbox Code Playgroud)

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

值得注意的是,这种行为通常是浮点运算的一个属性,并不是特定于Python的.