浮動小数点数の引数(通常は整数または有効数字1桁の10進数)を取る関数があり、小数点以下2桁の文字列で値を出力する必要があります(5-> 5.00、5.5-> 5.50など)。Pythonでこれを行うにはどうすればよいですか?
浮動小数点数の引数(通常は整数または有効数字1桁の10進数)を取る関数があり、小数点以下2桁の文字列で値を出力する必要があります(5-> 5.00、5.5-> 5.50など)。Pythonでこれを行うにはどうすればよいですか?
回答:
f-stringのフォーマット:
これはPython 3.6の新機能です。文字列は通常どおり引用符で囲まれ、生の文字列のf'...
場合と同じ方法で先頭に追加されr'...
ます。次に、文字列、変数、数値、中括弧内に配置したいものをすべて配置します。Python f'some string text with a {variable} or {number} within that text'
は、以前の文字列フォーマットメソッドと同じように評価されますが、このメソッドの方がはるかに読みやすくなっています。
>>> 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}'
です。
今後、新しいコードでは、一般的な%sまたはstr.format()メソッドよりもf文字列の方がはるかに読みやすくなり、多くの場合はるかに高速になるため、f文字列を優先します。
文字列のフォーマット:
print "%.2f" % 5
math.floor
、math.ceil
またはround
文字列のフォーマット:
a = 6.789809823
print('%.2f' %a)
または
print ("{0:.2f}".format(a))
ラウンド関数を使用できます:
print(round(a, 2))
round()の良い点は、この結果を別の変数に格納して、それを他の目的に使用できることです。
b = round(a, 2)
print(b)
round
。表示だけに使用すべきではありません。
round(5.0001, 2)
-> 5.0
、ない'5.00'
私はそれが古い質問であることを知っていますが、自分で答えを見つけるのに苦労していました。これが私が思いついたものです:
Python 3:
>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict)
0.12_0.13
d=3
"{:.{}f}".format(5, d)