在python中用非标准表示法表示浮点数?

时间:2011-12-14 00:52:04

标签: python floating-point

我正在尝试将 1.2e-08 打印为 12e-09 用于显示目的,但似乎无法获取格式说明符。

有没有办法用非标准形式表示浮点数而不使用字符串操作或使用正则表达式?

编辑:如果问题不明确,我正在寻找能让我以任何比例表达任何数字的东西,例如,如果我想按1e-12的比例缩放所有数字,那么我应该有类似12000e-12 < / p>

由于

1 个答案:

答案 0 :(得分:6)

查看十进制模块。它应该能够以你想要的格式出来。

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

如果您知道总是使用整数来表示尾数,则可以相应地调整格式。