首页 > 解决方案 > 在选项中添加圆形参数

问题描述

我在我的代码中遇到了一个问题,我将两个数字相乘而没有得到确切的答案

> x<-0.1
> y<-6
> x*y==0.6
[1] FALSE
> x*y-0.6
[1] 0.0000000000000001110223025

有没有办法在 15 位数字的选项中添加舍入,而不是在我的每个计算中添加函数舍入?

谢谢

标签: r

解决方案


使用浮点运算最安全的方法是避免使用严格的相等运算符==。例如,您可以near使用dplyr

x <- 0.1
y <- 6
x * y == 0.6
#> [1] FALSE
dplyr::near(x * y, 0.6)
#> [1] TRUE

或者定义你自己的函数来做同样的事情:

eq <- function(a, b) abs(a - b) < 1e-6
eq(x * y, 0.6)
#> [1] TRUE

reprex 包(v0.3.0)于 2020 年 8 月 9 日创建


推荐阅读