2024-10-06 07:47:01 发布
网友
我有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
x = 1.0
我使用的是python2.7
问题是0.1不能精确地表示为float。取而代之的是一个略大于0.1的数字:
0.1
float
In [2]: '%.20f' % 0.1 Out[2]: '0.10000000000000000555'
这会减少循环的迭代次数。而且,x从不精确地击中1.0(即使后者可以准确地表示)。你知道吗
x
1.0
值得注意的是,这种行为通常是浮点运算的一个属性,而不是Python特有的。你知道吗
问题是
0.1
不能精确地表示为float
。取而代之的是一个略大于0.1
的数字:这会减少循环的迭代次数。而且,
x
从不精确地击中1.0
(即使后者可以准确地表示)。你知道吗值得注意的是,这种行为通常是浮点运算的一个属性,而不是Python特有的。你知道吗
相关问题 更多 >
编程相关推荐