R 数字减法和比较产生不一致的结果[重复]

问题描述 投票:0回答:2

我今天刚刚注意到 R 中的数字减法的错误。这是令人难以置信的。可重现的示例既简单又复杂,如下所示。附:我在 R 会话中没有更改任何

option()

> 8.2-0.1==8.1
[1] TRUE
> 8.3-0.1==8.2
[1] FALSE

我还用

dput()
测试了减法结果,看起来是正确的。然而,与正确值的比较显示错误。

> a=8.3-0.1
> a%>%dput()
8.2
> a==0.2
[1] FALSE

有时甚至减法的结果也会有偏差,当然在这种情况下比较结果是错误的。

> a=8.2-8.1
> a%>%dput()
0.0999999999999996
> a==0.1
[1] FALSE

怎么会发生这种事并被允许留下来?

r numeric
2个回答
0
投票

我认为发生这种情况是因为你的计算是在“数字”计算机中完成的,并不是所有实数都可以在数字计算机中精确表达。请参阅 R 常见问题解答 https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f


0
投票
https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f

© www.soinside.com 2019 - 2024. All rights reserved.