gpt4 book ai didi

r - R中的浮点问题?

转载 作者:行者123 更新时间:2023-12-03 09:45:02 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Why are these numbers not equal?



以下表达式的计算结果为 0.1,被认为大于 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

考虑到问题可能是由于四舍五入,我尝试了相同的结果:
> 3 - 2.9
[1] 0.1
> (3 - 2.9) <=0.1
[1] FALSE

那么,是什么给出了以及如何在不捏造截止点的情况下修复它?

最佳答案

有 R 函数可以自动对“平等问题”采取合理的方法:

> (3 - 2.9) <=0.1
#[1] FALSE

> all.equal( (3 - 2.9) , 0.1)
#[1] TRUE

它使用 R 最小正浮点数的 sqrt 作为其默认阈值,因此它处理乘法和除法传播错误。最终在 1e-08 左右

关于r - R中的浮点问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com