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

ani*_*haw 3 python floating-point

我试图将1.2e-08打印为12e-09用于显示目的,但似乎无法获得格式说明符.

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

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

谢谢

tpg*_*114 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:])
Run Code Online (Sandbox Code Playgroud)

哪个会打印:12000.0e-12

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