2.4 对数值取整

2.4.1 问题

你想要对数值取整。

2.4.2 方案

存在许多种取整的方式:向最近的整数取整,向上或向下取整或者向 0 取整。

  1. x <- seq(-2.5, 2.5, by = 0.5)
  2. # 向最近的整数取整, 含有 .5 的值取整到最近一个偶数。
  3. round(x)
  4. #> [1] -2 -2 -2 -1 0 0 0 1 2 2 2
  5. # 向上取整
  6. ceiling(x)
  7. #> [1] -2 -2 -1 -1 0 0 1 1 2 2 3
  8. # 向下取整
  9. floor(x)
  10. #> [1] -3 -2 -2 -1 -1 0 0 1 1 2 2
  11. # 向 0 取整
  12. trunc(x)
  13. #> [1] -2 -2 -1 -1 0 0 0 1 1 2 2

也可以近似到其它小数位:

  1. x <- c(0.001, 0.07, 1.2, 44.02, 738, 9927)
  2. # 1 位小数近似
  3. round(x, digits = 1)
  4. #> [1] 0.0 0.1 1.2 44.0 738.0 9927.0
  5. # 10 位取整
  6. round(x, digits = -1)
  7. #> [1] 0 0 0 40 740 9930
  8. # 向最近的 5 的倍数近似
  9. round(x/5) * 5
  10. #> [1] 0 0 0 45 740 9925
  11. # 向最近的 .02 的倍数近似
  12. round(x/0.02) * 0.02
  13. #> [1] 0.00 0.08 1.20 44.02 738.00 9927.00