【发布时间】:2011-12-14 00:52:03
【问题描述】:
我正在尝试将 1.2e-08 打印为 12e-09 用于显示目的,但似乎无法获取格式说明符。
有没有办法以非标准形式表达浮点数,而无需求助于字符串操作或使用正则表达式?
编辑:如果问题不清楚,我正在寻找可以让我以任何比例表达任何数字的东西,例如,如果我想以 1e-12 的比例缩放所有东西,那么我应该有类似 12000e-12 的东西
谢谢
【问题讨论】:
标签: python floating-point
我正在尝试将 1.2e-08 打印为 12e-09 用于显示目的,但似乎无法获取格式说明符。
有没有办法以非标准形式表达浮点数,而无需求助于字符串操作或使用正则表达式?
编辑:如果问题不清楚,我正在寻找可以让我以任何比例表达任何数字的东西,例如,如果我想以 1e-12 的比例缩放所有东西,那么我应该有类似 12000e-12 的东西
谢谢
【问题讨论】:
标签: python floating-point
查看十进制模块。它应该能够以您想要的格式输出。
http://docs.python.org/library/decimal.html
对于您所描述的(工程符号),有一个 to_eng_string() 方法。
编辑
根据您的说明,您可以分部分构建数字:
myNumber = 1.2e-8
myBase = 1e-12
mantissa = myNumber/myBase
print "{0:1}{1:s}".format(mantissa, "{0:1}".format(myBase)[1:])
将打印: 12000.0e-12
如果您知道尾数总是使用整数,您可以相应地调整格式。
【讨论】: