我正在用 R 编写一个函数,要求我将计数器增加 0.05。当我以计数器的值为条件时,我被告知该值不是它所显示的值。
例子:
将计数器设置为 0
cntr <- 0; 中心;
[1] 0
将计数器递增 0.05 并进行测试
cntr <- cntr + 0.05; 中心; [1] 0.05
> cntr == 0.05
[1] TRUE
到目前为止,一切都很好。但是经过几次迭代后,会发生以下情况:
> cntr <- cntr + 0.05; cntr;
[1] 0.1
> cntr == 0.1
[1] TRUE
> cntr <- cntr + 0.05; cntr;
[1] 0.15
> cntr == 0.15
[1] FALSE
发生了什么,为什么?cntr 返回的值是 0.15 但不等于这个值?进一步的调查表明:
> cntr < 0.1500000000000001
[1] TRUE
> cntr < 0.15000000000000001
[1] FALSE
和
圆形(cntr,2)== 0.15 [1] 真
是我误解了什么,还是有什么我没有看到?任何帮助将不胜感激。谢谢你。