代码之家  ›  专栏  ›  技术社区  ›  SantiClaus

如何在保持科学性的同时,将一个科学数舍入到n位?

  •  0
  • SantiClaus  · 技术社区  · 8 年前

    我如何将一个科学数字四舍五入为n位数?但仍然保留着…

    期望输出:

    round(num,2) ## Just an example, I know this does not work.
    1.78943642E-10 -> 1.79E-10
    2.68289674E-11 -> 2.68E-11
    6.23486821E-15 -> 6.23E-15
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   AkselA    8 年前

    你在找 signif() (四舍五入到指定数量的有效数字)?

    如:

    x <- 1e18/pi; x
    # 3.183099e+17
    signif(x, 2)
    # 3.2e+17
    

    如果你想“强制”打印科学记数法,也许作为绘图标签的一部分,你可以使用 formatC()

    formatC(0.01235, format="e", digits=2)
    # "1.23e-02"
    

    这里的输出是字符,所以不能直接对它进行数学运算。

    推荐文章