相关疑难解决方法(0)

为什么这些数字不相等?

以下代码显然是错误的.有什么问题?

i <- 0.1
i <- i + 0.05
i
## [1] 0.15
if(i==0.15) cat("i equals 0.15") else cat("i does not equal 0.15")
## i does not equal 0.15
Run Code Online (Sandbox Code Playgroud)

floating-point r floating-accuracy r-faq

263
推荐指数
4
解决办法
4万
查看次数

从.5开始

是的我知道为什么我们总是四舍五入到最近的偶数,如果我们在两个数字的确切中间(即2.5变为2).但是,当我想为某些人评估数据时,他们不希望出现这种行为.获得这个的最简单方法是什么:

x <- seq(0.5,9.5,by=1)
round(x)
Run Code Online (Sandbox Code Playgroud)

为1,2,3,...,10而不是0,2,2,4,4,...,10.

编辑:要清除:舍入后1.4999应为1.(我觉得这很明显)

r rounding r-faq

54
推荐指数
5
解决办法
2万
查看次数

标签 统计

r ×2

r-faq ×2

floating-accuracy ×1

floating-point ×1

rounding ×1