浮動小数点数を特定の精度に変換し、文字列にコピーする 質問する

浮動小数点数を特定の精度に変換し、文字列にコピーする 質問する

浮動小数点数 があるとします135.12345678910。その値を文字列に連結したいのですが、必要なのは だけです135.123456789。print を使用すると、次のように簡単にこれを行うことができます。

print "%.9f" % numvar

私のオリジナルの番号ですnumvar。これを行う簡単な方法はありますか?

ベストアンサー1

Python < 3 (例: 2.6 [コメントを参照] または 2.7) の場合、これを行う方法は 2 つあります。

# Option one
older_method_string = "%.9f" % numvar

# Option two
newer_method_string = "{:.9f}".format(numvar)

ただし、Pythonバージョン3以上(3.2や3.3など)の場合、オプション2は好ましい

オプション2の詳細については、Pythonドキュメントの文字列フォーマットに関するこのリンク

オプション1の詳細については、このリンクは十分であり、さまざまなフラグに関する情報が記載されています

Python 3.6(2016年12月に正式リリース)では、f文字列リテラルが追加されました。詳細はこちらは、このstr.format方法を拡張します(中括弧の使用により、f"{numvar:.9f}"元の問題が解決されます)。つまり、

# Option 3 (versions 3.6 and higher)
newest_method_string = f"{numvar:.9f}"

問題を解決します。詳細については@Or-Duanの回答をご覧ください。ただし、この方法は速い

おすすめ記事