将数字格式化为科学计数法,但使用 3e-5 而不是 3e-05
Posted
技术标签:
【中文标题】将数字格式化为科学计数法,但使用 3e-5 而不是 3e-05【英文标题】:Format number to scientific notation, but to 3e-5 instead of 3e-05 【发布时间】:2020-04-30 09:53:37 【问题描述】:我想用科学计数法打印非常小或非常大的数字:
pattern = ":.0e"
value1 = pattern.format(0.00003)
value2 = pattern.format(0.00000000005)
value3 = pattern.format(999999999)
print(value1, value2, value3)
# Current output: 3e-05 5e-11 1e+09
# Desired output: 3e-5 5e-11 1e+9
在-
之后没有0
,有没有比value1.replace("-0", "-").replace("+0", "+")
更好的方法来格式化数字?我希望数字尽可能短。
【问题讨论】:
这能回答你的问题吗? remove leading 0 in exponential format in python 【参考方案1】:使用小数。
import decimal
pattern = ":.0e"
value1 = pattern.format(decimal.Decimal('0.00003'))
value2 = pattern.format(decimal.Decimal('0.00000000005'))
value3 = pattern.format(decimal.Decimal('999999999'))
print(value1, value2, value3)
【讨论】:
以上是关于将数字格式化为科学计数法,但使用 3e-5 而不是 3e-05的主要内容,如果未能解决你的问题,请参考以下文章