如何使用formatC使简单算术运算的结果正确?

问题描述 投票:0回答:1

当简单的算术运算作为

formatC()
传递时,函数
x
会产生错误的数字格式。

示例:

formatC(29, width = 3, format = "d", flag = "0")
> "029"

这是正确的。但当我这样做时:

formatC(100*0.29, width = 3, format = "d", flag = "0")
> "028"

我在这里缺少什么? (R版本4.3.2(2023-10-31 ucrt))

r format
1个回答
1
投票

您正在使用

format = "d"
。然而,R 并不将 0.29 * 100 存储为整数。你可以在这里看到这个:

sprintf("%.20f", 100 * 0.29)
# [1] "28.99999999999999644729"

使用整数格式会将其截断为 28。使用适当的格式,例如:

formatC(100 * 0.29, width = 3, format = "g", flag = "0")
# [1] "029"
© www.soinside.com 2019 - 2024. All rights reserved.