Python while循环没有预期的循环次数

2024-10-06 07:47:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有4个嵌套的循环,而它们看起来都像下面的一个

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

我想让它做的是,当它是<;=1.0时,每次给x加0.1 我遇到的问题是,它实际上从未进入while循环x = 1.0

我使用的是python2.7


Tags: ltlswhilealloc
1条回答
网友
1楼 · 发布于 2024-10-06 07:47:01

问题是0.1不能精确地表示为float。取而代之的是一个略大于0.1的数字:

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

这会减少循环的迭代次数。而且,x从不精确地击中1.0(即使后者可以准确地表示)。你知道吗

值得注意的是,这种行为通常是浮点运算的一个属性,而不是Python特有的。你知道吗

相关问题 更多 >