【发布时间】:2014-09-15 17:02:33
【问题描述】:
我正在尝试对任何实数应用顺序舍入函数,以便满足以下条件:“报告的数字应不超过两位小数,不超过两位有效数字”。
例如:
0.0236 应报告为 0.02
0.236 应报告为 0.24
2.36 应报告为 2.4
23.6 应报告为 24
236 应该报告为 240
似乎只要在使用round 和signif 进行四舍五入后出现尾随零,它们就会被省略(例如,0.90023 变为 0.9 而不是 0.90)。我尝试了以下代码:
my_round <- function(x1) {
x2 <- formatC(x1, digits=2, format="f", drop0trailing=FALSE)
x2 <- as.numeric(x2)
x3 <- formatC(x2, digits=2, format="fg", flag="#", drop0trailing=FALSE)
x3 <- as.numeric(x3)
print(x3)
}
这适用于任何数字,除了像 195(整数部分中超过两个有效数字)这样的数字,它仍然是 195 而不是四舍五入到 200。
我将不胜感激提供有关此主题的任何帮助。
(R v3.1.0, 2014-04-10)
【问题讨论】:
标签: r rounding trailing significant-digits