Float引数(通常は有効数字1桁の整数または小数)をとる関数があり、小数点以下2桁(5-> 5.00、5.5-> 5.50など)の文字列で値を出力する必要があります。 Pythonでこれを行うにはどうすればよいですか?
そのために文字列フォーマット演算子を使用できます:
>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'
演算子の結果は文字列なので、変数に保存したり、印刷したりできます。
この投稿はしばらくここにあるかもしれないので、python 3構文も指摘しましょう。
"{:.2f}".format(5)
f-string フォーマット:
これはPython 3.6の新機能です-文字列は通常の引用符で囲まれ、生の文字列のf'...
と同じようにr'...
が先頭に追加されます。次に、文字列、変数、数値、および中括弧の中に入れたいものは何でも配置します。f'some string text with a {variable} or {number} within that text'
-およびPythonは、以前の文字列フォーマット方法と同様に評価します。
>>>a = 3.141592
>>>print(f'My number is {a:.2f} - look at the Nice rounding!')
My number is 3.14 - look at the Nice rounding!
この例では、以前の文字列フォーマット方法と同様の方法で 小数点以下の桁数でフォーマット を確認できます。
NB a
には、数値、変数、または式(f'{3*my_func(3.14):02f}'
など)を使用できます。
今後、新しいコードでは、f-stringsは多くの faster であるため、一般的な%sまたはstr.format()メソッドよりもf-stringsを優先する必要があります。
文字列のフォーマット:
print "%.2f" % 5
python文字列フォーマットを使用します。
>>> "%0.2f" % 3
'3.00'
数字だけを表示するのではなく、実際に数字自体を変更したい場合は、format()を使用します。
小数点以下2桁にフォーマットします。
format(value, '.2f')
example:
>>> format(5.00000, '.2f')
'5.00'
これは古い質問ですが、自分で答えを見つけるのに苦労していました。ここに私が思いついたものがあります:
Python 3:
num_dict = { 'num': 0.123, 'num2':0.127}
"{0[num]:.2f}_{0[num]:.2f}".format(num_dict)
#output:
0.12_0.13
Python 3構文の使用:
print('%.2f' % number)