3

Pythonで同じスケールの科学的記数法の数値を印刷したい。たとえば、私は異なる番号を持っているので、これらすべての番号を表記(1e-6, 3e-7, 5e-7, 4e-8)で印刷したいと思います。では、どうすれば印刷できますか?e-6(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べきか知りたいです。yy * 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 に答える