重複の可能性:
数値をエンジニアリング形式で出力
3 の倍数の累乗で数値を科学表記法で出力するにはどうすればよいですか? 例えば:
1.5e4 --> 15e3
1.27e-8 --> 12.7e-9
2.9855e-11 --> 29.855e-9
ENG
電卓のボタンに似た機能を探しています。これを行うPythonパッケージはどこかにありますか?
重複の可能性:
数値をエンジニアリング形式で出力
3 の倍数の累乗で数値を科学表記法で出力するにはどうすればよいですか? 例えば:
1.5e4 --> 15e3
1.27e-8 --> 12.7e-9
2.9855e-11 --> 29.855e-9
ENG
電卓のボタンに似た機能を探しています。これを行うPythonパッケージはどこかにありますか?
そのような機能はまだないようです (少なくとも Python 2.7 では)。http://bugs.python.org/issue8060を参照 してください。次の解決策を見つけました(個人的にはあまり好きではありませんが、うまくいくようです):
import math
for exponent in xrange(-10, 11):
flt = 1.23 * math.pow(10, exponent)
l = math.log10(flt)
if l < 0:
l = l - 3
p3 = int(l / 3) * 3
multiplier = flt / pow(10, p3)
print '%e =%fe%d' % (flt, multiplier, p3)
必要に応じて調整してください。
編集: ここも見てくださいエンジニアリング形式で番号を出力してください