我正在做一个十进制数相乘并将其转换为整数的简单操作,但结果似乎与预期不同。抱歉,如果在其他地方对此进行了讨论,我无法找到任何直接的答案
> as.integer(1190.60 * 100)
[1] 119059
Run Code Online (Sandbox Code Playgroud)
编辑: 所以,我必须将其转换为字符,然后执行 as.integer 以获得预期的结果
> temp <- 1190.60
> temp2 <- 1190.60 * 100
> class(temp)
[1] "numeric"
> class(temp2)
[1] "numeric"
> as.character(temp2)
[1] "119060"
> as.integer(temp2)
[1] 119059
> as.integer(as.character(temp2))
[1] 119060
Run Code Online (Sandbox Code Playgroud)
EDIT2:根据评论,感谢@andrey-shabalin
> temp2
[1] 119060
> as.integer(temp2)
[1] 119059
> as.integer(round(temp2))
[1] 119060
Run Code Online (Sandbox Code Playgroud)
EDIT3:正如评论中提到的,问题与 as.integer 的行为有关,而不是关于浮动计算
r ×1