2017-08-22 15 views
3

例えば10進数が非常に小さい計算をしています。0.0000082pythonで指数値を文字列形式に変換するには?

変数に保存すると指数形式に変わります。私は最後に文字列として結果が必要です。したがって、str()を使用して結果を変換することは、eを文字列に保持するため不可能です。 小数点以下8桁まで正確に文字列が必要です。 8桁の精度をそのまま維持しながらこれを行う方法はありますか?

もう1つの例:5.8e-06'0.00000580'に変換する必要があります。最後の文字列の末尾のゼロは重要ではありません。 他の場所で使用するには文字列が必要です。したがって、これはprint()関数では行わないでください。

答えて

3

を出力します番号(バイナリ浮動小数点として格納されますポイント値)。 strで数字を文字列に変換するときのデフォルトの表現です。 format関数を使用して数値を文字列に変換すると、独自の書式設定オプションを指定できます。このような何かを試してみてください:それは指数表記のないプレーンな小数点以下のように記述することがf要求しながら、

format(5.8e-06, '.8f') 

書式指定子で8精度の8桁を使用するように指示します。書式表記in the documentationの詳細を読むことができます。

+0

ありがとうございます。はるかに多くの洞察力を与える。私はこの答えを受け入れるだろう。 – aste123

3

あなたが試すことができます:ちょうど別のアイデア

import decimal 

print(str(decimal.Decimal(5.8e-06))[:10]) 

>>> 0.00000580 
+0

を私が探していたまさに。どうもありがとうございました。 – aste123

+0

私はちょうど良いスライスを探しています..秒を待つ – PRMoureu

+0

はい、整数部分はこのメソッドによって保存されません。 – aste123

3

'{0:.7f}'.format(0.0000082) 
+0

これも機能します。ありがとうございました。 – aste123

2
print ("{:.6f}".format(1e-4)) 

は体験表記の固有のプロパティではありません

0.000100 
0

あなたは、印刷に使用できます。

>>> number = 1e-08 
>>> number 
1e-08 
>>>print("{:.12f}".format(float(a))) 
0.000000010000 

するか、あなたは、文字列に数値を変換し、それを保存することができます:

>>> str1 = "{:.12f}".format(float(a)) 
>>> str1 
'0.000000010000'