首页 > 解决方案 > 是否有可以将 4.25 舍入为 4.3 而不是 4.2 的 R 函数?

问题描述

有没有办法将数字 4.25 舍入到 4.3 而不是 R 中的 4.2?

x <- sprintf("%-8.1f",4.25) # rounds it to 4.2

标签: r

解决方案


如果你喜欢,你可以编写自己的“ round”函数,如下所示

fround <- function(x, d = 0) {
  x.abs <- abs(x)
  s <- sign(x)
  u <- trunc(x.abs * 10^d)
  s * (u + ifelse(x.abs * 10^d - u >= 0.5, 1, 0)) / 10^d
}

这样

> fround(4.25, 2)
[1] 4.25

> fround(4.25, 1)
[1] 4.3

> fround(4.25, 0)
[1] 4

> fround(-4.25, 2)
[1] -4.25

> fround(-4.25, 1)
[1] -4.3

> fround(-4.25, 0)
[1] -4

推荐阅读