2012-10-20 112 views
1

可能重复:
Print number in engineering format印刷号在Python

如何打印数字科学记数法与是3的倍数的权力?例如:

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

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

回答

0

这似乎没有这样的功能,但(至少在Python 2.7),请参阅:http://bugs.python.org/issue8060http://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) 

只需根据您的需要调整它。

编辑: 也请看这里Print number in engineering format