r - 在选项中添加圆形参数
问题描述
我在我的代码中遇到了一个问题,我将两个数字相乘而没有得到确切的答案
> x<-0.1
> y<-6
> x*y==0.6
[1] FALSE
> x*y-0.6
[1] 0.0000000000000001110223025
有没有办法在 15 位数字的选项中添加舍入,而不是在我的每个计算中添加函数舍入?
谢谢
解决方案
使用浮点运算最安全的方法是避免使用严格的相等运算符==
。例如,您可以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 日创建
推荐阅读
- c# - WPF - 设置字体大小以适合文本框
- ruby-on-rails - RSpec 请求测试
- typescript - 异步函数错误:“键入'Promise
[]' 不可分配给类型 'MyType[]' " - c++ - c++算法为什么会出现无限循环
- javascript - 回调函数中的 JS 语法(nodejs、express、passport)
- python - Kivy > 线程化和使用 Spinner
- python - Spark 计划中的 Firebase 存储:要计费的项目与缺席的计费帐户相关联
- sql - 是否可以从其他表属性派生属性
- sql - 如何修复这个缓慢的 Postgres 选择查询
- ios - 如何在 MWPhotoBrowser swift iOS 中显示手机的图库