Pythonの数値を指数表記で出力する方法
intだったりfloatで与えられた数値をstr型で出力する方法いろいろ。 意外と手こずった。
f = 1234.56
をstr型に変換する
そのまま
str(f)
# '1234.56'
指数表記、有効数字
formatを使うのが一番手っ取り早い
'{:.2g}'.format(f)
# '1.2e+3'
など
このあたりが参考になるかも
Python, formatで書式変換(0埋め、指数表記、16進数など) | note.nkmk.me
自由形式
1.2×103と表示したかったのでその方法
まず指数の肩の部分とfactorの部分を求める
a = int(math.log10(f))
b = round(f / 10**a,1)
# a = 3
# b = 1.2
そしてこれらを無理やり一つにして表示する
import matplotlib.pyplot as plt
plt.text(0.5,0.5,str(b)+'×'+r'$10^{'+str(a)+'}$')
で完成。
tex形式を使うけど$で囲まれた間に+でいろいろ結合しても問題ないようだ。