本文介绍了R中的浮点问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面的表达式评估为0.1,认为大于0.1。
> (1740 / 600,0) - 1740/600
[1] 0.1
> (一轮(1740 / 600,0) - 1740/600) [1] FALSE // ??? !! ???
> (round(1740 / 600,0) - 1740/600) [1] TRUE
认为这个问题可能是由于四舍五入的原因,我试着用相同的结果:
> 3 - 2.9
[1] 0.1
> (3 - 2.9) [1] FALSE
如何解决这个问题,而不会欺骗中断?
解决方案
从:
The below expression, which evaluates to 0.1, is considered larger than 0.1.
> round(1740/600,0) - 1740/600
[1] 0.1
> (round(1740/600,0) - 1740/600) <= 0.1
[1] FALSE //???!!???
> (round(1740/600,0) - 1740/600) <= 0.1000000000000000000000000000000000000001
[1] TRUE
Thinking that the issue might be due to rounding I tried this with the same result:
> 3 - 2.9
[1] 0.1
> (3 - 2.9) <=0.1
[1] FALSE
So, what gives and how do I fix it without fudging the cutoff?
解决方案
From the Floating-Point Guide:
这篇关于R中的浮点问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!