我试图通过在 python 中将其增加 0.001 来获得从零开始的一系列数字。直到 0.008 为止,它都给出了正确的结果。在下一次迭代中,该值必须恰好是 0.009,但输出给出 0.009000000000000001。这种错误也可以在进一步的迭代中看到。以下代码:
t = 0.000
dt = 0.001
timemax = 0.012
while(t<timemax):
print(t)
t = t + dt
if(t>= timemax):
exit()
输出如下:
0.0
0.001
0.002
0.003
0.004
0.005
0.006
0.007
0.008
0.009000000000000001
0.010000000000000002
0.011000000000000003
dt = 0.01当 和 的值时甚至可以看到错误timemax = 0.12。它的代码如下:
t = 0.000
dt = 0.01
timemax = 0.12
while(t<timemax):
print(t)
t = t + dt
if(t>= timemax):
exit()
输出:
0.0
0.01
0.02
0.03
0.04
0.05
0.060000000000000005
0.07
0.08
0.09
0.09999999999999999
0.10999999999999999
0.11999999999999998
为什么会这样?我们可以采取什么措施来解决这个问题?