Pythonで同じスケールの科学的記数法の数値を印刷したい。たとえば、私は異なる番号を持っているので、これらすべての番号を表記(1e-6, 3e-7, 5e-7, 4e-8)
で印刷したいと思います。では、どうすれば印刷できますか?e-6
(1e-6, 0.3e-6, 0.5e-6, 0.04e-6)
ありがとう
使用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
数学的には、タックするe-6
ことは、を掛けることと同じ1e-6
ですよね?
だから、あなたは数を持っています、そしてあなたはそのようなものを何を使うx
べきか知りたいです。y
y * 1e-6 == x
したがって、1e6を掛けて、それを非指数形式でレンダリングしてからe-6
、文字列として追加します。
def e6(x):
return '%fe-6' % (1e6 * x,)
numpyを使用しているので、np.set_printoptions
関数、特に。formatter
のような辞書をとる引数を必ず確認する必要があります{'float': formatting_function}
。特定のケースに最も適切なフォーマット機能を使用してください。