在Python中以非标准表示法表示浮点数?
我想把1.2e-08显示成12e-09,但是找不到合适的格式设置方法。
有没有办法在不使用字符串操作或正则表达式的情况下,以非标准的形式表示浮点数?
补充说明:如果这个问题不太清楚,我想要的是一种方法,可以让我把任何数字以任何比例表示,比如如果我想把所有数字都按1e-12的比例来显示,那么我希望能得到像12000e-12这样的结果。
谢谢!
1 个回答
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
如果你知道你总是会得到一个整数的尾数,你可以相应地调整格式。