1

可能重复:
以工程格式打印编号

如何以 3 的倍数以科学计数法打印数字?例如:

1.5e4      --> 15e3
1.27e-8    --> 12.7e-9
2.9855e-11 --> 29.855e-9

我正在寻找类似于ENG计算器上的按钮的功能。是否有一个 Python 包可以做到这一点?

4

1 回答 1

0

似乎还没有这样的功能(至少在 Python 2.7 中),请参阅:http ://bugs.python.org/issue8060 在页面http://bytes.com/topic/python/answers/616948- string-formatting-engineering-notation我找到了以下解决方案(我个人不太喜欢,但似乎可行):

import math

for exponent in xrange(-10, 11):
    flt = 1.23 * math.pow(10, exponent)
    l = math.log10(flt)
    if l < 0:
        l = l - 3
    p3 = int(l / 3) * 3
    multiplier = flt / pow(10, p3)
    print '%e =%fe%d' % (flt, multiplier, p3)

只需根据您的需要进行调整即可。

编辑:也请看这里以工程格式打印数字

于 2012-10-20T09:27:45.077 回答