R和IEEE 754中的四舍五入

R和IEEE 754中的四舍五入,r,rounding,ieee-754,R,Rounding,Ieee 754,上下文 R的help()函数表示round()遵循与IEEE 754相同的标准:将两半圆变成偶数 维基百科用以下例子描述了这个标准:23.5变成24,24.5变成24 help()还指出,…这取决于操作系统服务和表示错误 实验 系统详细信息 R版本:3.6.2(2019-12-12) Arch/OS:x86_64,达尔文18.7.0(MacOS) 在我的机器上,我看到了 round(0.55, digits = 1) # [1] 0.6 round(1.55, digits = 1) #

上下文

R的
help()
函数表示
round()
遵循与IEEE 754相同的标准:将两半圆变成偶数

维基百科用以下例子描述了这个标准:23.5变成24,24.5变成24

help()
还指出,…这取决于操作系统服务和表示错误

实验

系统详细信息

  • R版本:3.6.2(2019-12-12)
  • Arch/OS:x86_64,达尔文18.7.0(MacOS)
在我的机器上,我看到了

round(0.55, digits = 1)  # [1] 0.6
round(1.55, digits = 1)  # [1] 1.6
round(2.55, digits = 1)  # [1] 2.5
round(3.55, digits = 1)  # [1] 3.5
问题


我是否应该将前两条和后两条语句之间的差异归因于错误的操作系统服务和/或表示错误?

请参见编辑。如果没有
digits=1
,它将舍入为整数。另外,R的操作系统和版本是什么?我怀疑
2.55
存储在IEEE double中,因此不完全是2.55,而是
2.549999999…(加上垃圾))
。因此,它是正确的四舍五入“向下”。