【问题标题】:Control the number of digits in the power of scientific notation (e.g. e-3 instead of e-03)控制科学记数法的位数(例如 e-3 而不是 e-03)
【发布时间】:2021-09-02 09:07:10
【问题描述】:

我可以看到控制以科学计数法打印的小数位数的方法。但是有没有办法控制幂中的数字呢?

> num = -0.000173929
> num
[1] -0.000173929
> format(num, scientific=T)
[1] "-1.73929e-04"
> format(num, digits=2, scientific=T)
[1] "-1.7e-04"

我希望按如下方式打印值。

-1.7e-4

怎么做?

【问题讨论】:

    标签: r


    【解决方案1】:

    一个简单的正则表达式怎么样,

    gsub('0','',format(num, digits=2, scientific=TRUE))
    #[1] "-1.7e-4"
    

    【讨论】:

    • 你需要在e 后面加上0,否则你会在num = 1e100 这样的东西上出错:gsub('0', '', format(num, digits=2, scientific=TRUE)) 给出[1] "1e+1"
    • 感谢您的警告。所以我用gsub('e-0','e-',format(num, digits=2, scientific=TRUE))
    猜你喜欢
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多