控制科学记数法的位数(例如 e-3 而不是 e-03)

Posted

技术标签:

【中文标题】控制科学记数法的位数(例如 e-3 而不是 e-03)【英文标题】:Control the number of digits in the power of scientific notation (e.g. e-3 instead of 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

怎么做?

【问题讨论】:

【参考方案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))

以上是关于控制科学记数法的位数(例如 e-3 而不是 e-03)的主要内容,如果未能解决你的问题,请参考以下文章