首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中正确的四舍五入数字

问R中正确的四舍五入数字
EN

Stack Overflow用户
提问于 2021-03-01 20:55:41
回答 1查看 54关注 0票数 0

关于这个问题有很多线索。似乎没有人回答这个简单的问题:为什么R取整不正确,我如何正确地让它取整?

正确地四舍五入到第i位小数x将考虑第i+1位小数。如果大于或等于5,则将x设置为x+1。如果等于或小于4,则返回x。例如,将1.45四舍五入到小数点后的第一位为1.5。1.44舍入为1.4。但是,在R中

代码语言:javascript
复制
> round(1.45,1)
[1] 1.4

但

代码语言:javascript
复制
> round(1.46,1)
[1] 1.5

因此,它将约定更改为“如果i+1th十进制数为6或更大,则将x设置为x+1”。为什么?我如何才能将其更改为我熟悉的约定?

EN

回答 1

Stack Overflow用户

发布于 2021-03-01 21:03:32

在二进制双精度中,大多数小数不能精确表示

在这里了解到:https://stat.ethz.ch/R-manual/R-devel/library/base/html/Round.html

“警告”部分:

在二进制算术中,四舍五入到小数位数是非常重要的(当数字!= 0时),这可能会令人惊讶。请注意,大多数小数不能精确地表示为二进制双精度。在R 4.0.0中,对于d> 0,舍入(x,d)的算法已经改进为测量和舍入“最接近的偶数”,这与R的早期版本相反(或者也是基于sprintf()或format()的舍入)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66422564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档