给出以下R代码:
i = 1.0
while(i > 0.03)
i=i-0.05
print(i)
输出如下:
[1] 0.95
[1] 0.9
...
..
.
[1] 0.1
[1] 0.05
[1] -3.191891e-16
谁能解释为什么循环中的终止减法不等于0?起初,我认为这是一个浮点错误,但我认为不是。
例如,如果我将值从1.0
更改为5.0
:
i = 5.0
while(i > 0.03)
i=i-0.05
print(i)
最后一个值的输出是:
[1] 9.395262e-15
我知道这足够接近0,但是为什么会这样呢?
我尝试在不同的机器和操作系统上执行此代码,并且已经在C和Python中测试了这种情况(但是对于R来说似乎是唯一的)。