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べきか知りたいです。yy * 1e-6 == x
したがって、1e6を掛けて、それを非指数形式でレンダリングしてからe-6、文字列として追加します。
def e6(x):
return '%fe-6' % (1e6 * x,)
numpyを使用しているので、np.set_printoptions関数、特に。formatterのような辞書をとる引数を必ず確認する必要があります{'float': formatting_function}。特定のケースに最も適切なフォーマット機能を使用してください。