舍入误差R.

时间:2015-11-19 14:00:47

标签: r

运行此计算时:R中的2.36*7299.83返回17227.599,但正确的答案应为17227.5988。即使我之前运行options(digits=8)round(2.36*7299.83, 4),它仍会得到错误答案。

它看起来不像浮点错误,因为它位于小数点后第四位。

任何帮助?

谢谢。

2 个答案:

答案 0 :(得分:0)

我认为您必须指定格式:

formatC(2.36*7299.83, digits=4, format = "f")
  

" 17227.5988"

formatC(2.36*7299.83, digits=8, format = "f")
  

" 17227.59880000"

答案 1 :(得分:0)

默认digits为7。

getOption("digits")
# [1] 7
print(round(2.36*7299.83, 4), digits=9)
# [1] 17227.5988