r - R(和 python)从 5 或 6 开始向上取整
问题描述
我已经看到了一个问题,其中包含非常多的十进制数字R 舍入解释。
round(62.495, digits=2)
给我 62.49。我预计已经 62.5,但似乎 R (3.4.3, 3.5.0) 仅从 6 开始四舍五入,例如,
round(62.485, 2) == 62.48
round(62.486, 2) == 62.49.
由于其他原因,我正在使用该选项
options(digits.secs=6)
据我所知,一轮从5开始。我还用 Python 和 Matlab 进行了测试。Matlab 向上取整,Python 3.5.4 向下取整。
我怎样才能改变这种行为,或者这个定义是否不同,例如欧洲和美国之间?
解决方案
这是一个浮点表示问题,62.495 实际上由一个稍小的数字表示,然后向下舍入。
print(62.495,digits=22)
[1] 62.49499999999999744205
R的四舍五入是统计四舍五入,或四舍五入到偶数。它应该向上或向下舍入到偶数,例如
round(0.5) # rounds the half down to 0
[1] 0
round(1.5) # rounds the half up to 2
[1] 2
推荐阅读
- github-actions - 使用 Github 操作时执行第二个命令时出错
- python - 解构for循环
- node.js - 在strapi中使用momentjs自定义查询每日计数
- mysql - 如何在一张表中合并两个查询
- python - 从以特殊字符开头和结尾的 pandas 行中提取子字符串
- reactjs - Apache ECharts 单击 React js 的切换线
- sql - 级联问题
- ansible - Ansible - 为自定义集合运行“make webdocs”
- c++ - 我可以在 C++ 中传递具有不同嵌套级别的嵌套初始化器列表吗?
- sql - 在 Oracle 的选择查询中使用值列表作为表