3

我想在 python 中打印具有相同比例的科学计数法数字。例如,我有不同的数字(1e-6, 3e-7, 5e-7, 4e-8),所以现在我想用e-6notation打印所有这些数字(1e-6, 0.3e-6, 0.5e-6, 0.04e-6)。那么如何打印呢?

谢谢

4

3 回答 3

1

使用log10

In [64]: lis= (1e-6, 3e-7, 5e-7, 4e-8)

In [65]: import math

In [66]: for x in lis:
    exp=math.floor(math.log10(x))
    num=x/10**exp              
    print "{0}e-6".format(num*10**(exp+6))
   ....:     
   ....:     
1.0e-6
0.3e-6
0.5e-6
0.04e-6
于 2012-10-03T20:45:08.177 回答
1

从数学上讲,附加e-6与乘以相同1e-6,对吧?

因此,您有一个数字x,并且您想知道如何y使用它y * 1e-6 == x

因此,只需乘以 1e6,以非指数格式呈现,然后附加e-6为字符串:

def e6(x):
  return '%fe-6' % (1e6 * x,)
于 2012-10-03T19:59:07.023 回答
0

当你使用 numpy 时,你一定要看看这个np.set_printoptions函数,特别是它的formatter参数,它需要一个像{'float': formatting_function}. 为您的特定情况使用最合适的格式化功能。

于 2012-10-03T20:59:43.480 回答