次のように、ファイルに数値を(文字列として)科学表記法で記述しています。
8.99284722486562e-02
しかし、私はそれらを次のように変換したい:
0.08992847
組み込み関数や他の方法はありますか?
私はあなたがこれでこれを行うことができると確信しています:
float("8.99284722486562e-02")
# and now with 'rounding'
"{:.8f}".format(float("8.99284722486562e-02"))
ご存知かもしれませんが、浮動小数点数には精度の問題があります。たとえば、次を評価します。
>>> (0.1 + 0.1 + 0.1) == 0.3
False
代わりに、 Decimal クラスを使用できます。 pythonインタプリタで:
>>> import decimal
>>> tmp = decimal.Decimal('8.99284722486562e-02')
Decimal('0.0899284722486562')
>>> decimal.getcontext().prec = 7
>>> decimal.getcontext().create_decimal(tmp)
Decimal('0.08992847')