本文介绍了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中的浮点问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 16:40