控制科学记数法的位数(例如 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)的主要内容,如果未能解决你的问题,请参考以下文章
R语言sprintf函数:sprintf函数格式化小数位数(数值数据前后整体占位个数)将数字输入与非数字输入组合起来控制科学计数法控制小数零的个数多输入数据的格式化