Python で浮動小数点を文字列にフォーマットする
-
フォーマット仕様と
format()
メソッドを使用して、浮動小数点数を固定幅にフォーマットする - リスト内の浮動小数点数を固定幅にフォーマットする
-
Python の
%
演算子を使用して、浮動小数点をフォーマットして幅を固定する -
Python の
round()
関数を使用して、浮動小数点を固定幅にフォーマットする
この記事では、Python で浮動小数点を固定幅にフォーマットするいくつかの方法を紹介します。
フォーマット仕様と format()
メソッドを使用して、浮動小数点数を固定幅にフォーマットする
ここでは、フォーマット指定による通常のフォーマットプロセスを使用して、浮動小数点数の幅を固定します。
変数 num
を作成し、それに浮動小数点数を割り当てます。次に、浮動小数点数を必要な形式で出力します。format()
関数を使用して結果を取得します。
コード例:
# python 3.x
num = 0.02893574
print("{:.4f}".format(num))
出力:
0.0289
ここで、.4f
はフォーマット仕様と呼ばれ、出力は小数点以下 4 桁のみを表示する必要があることを示します。代わりに .5f
を使用した場合、小数点以下 5 桁になります。コロン:
の前の空の文字列は、format()
関数に提供された引数がその場所に配置されるように配置されます。上記のプログラムでは、提供した引数は num
です。したがって、num
にある値はすべて、:
の前の空の文字列に渡され、それに応じてフォーマットされます。
Python 3.6 では、f'{}'
を使用して同じ出力を取得することもできます。
# python 3.x
num = 0.02893574
print(f"{num:.4f}")
出力:
0.0289
リスト内の浮動小数点数を固定幅にフォーマットする
同様の構文を使用して、浮動小数点数の幅を小数点以下の特定の桁まで固定します。
まず、いくつかの浮動小数点数を含むリストを作成します。次に、for
ループを使用して、リストからすべてのアイテムを取得し、それに応じてフォーマットします。リスト内の数値を表すために変数 numbers
を使用します。リスト内の浮動小数点数を、小数点以下の桁数を固定して 1つずつ出力します。
サンプルコード:
# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print("{:.3f}".format(numbers))
出力:
18.292
52.452
999.121
上記のコードでは、リスト内の各番号が for
ループ内で 1つずつ送信されます。リストの最初の要素、つまり list[0]
が変数 numbers
に割り当てられ、そのフォーマットされた値、つまり 18.293
が出力されます。これは、小数点以下 3 桁までの数字を表す .3f
を実行したために発生しました。同様に、2 番目の要素 list[1]
と 3 番目の list[2]
も変数 numbers
としてループに渡され、それに応じて出力されます。
このプログラムは、リストのすべての要素が実行されるまで実行されます。
f'{}'
の使用:
サンプルコード:
以下のリストには、上記のプログラムと同じ項目が含まれています。この例では、format()
関数の代わりに f'{}'
を使用します。
# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print(f"{numbers:9.3f}")
出力:
18.292
52.452
999.121
f'{}'
を使用したときに出力を取得したことがわかります。また、調整された方法で目的の出力を取得しました。同じ理由で、小数点以下の浮動桁数を揃えたい場合は、通常、f'{}'
を使用することをお勧めします。
Python の%
演算子を使用して、浮動小数点をフォーマットして幅を固定する
%v
演算子を使用して、浮動小数点の固定幅を設定することもできます。コードは、C プログラミングの printf()
関数に似ている場合があります。
変数 num
に浮動小数点を割り当て、num
の値を固定幅までの 10 進数で出力します。num
の値をフォーマット指定子%.4f
を使用して print ステートメントに渡すとき、num
を使用していることに注意してください。num
の前に%
がない場合、構文エラーになります。
サンプルコード:
# python 3.x
num = 0.02893574
print("%.4f" % num)
出力:
0.0289
ここでは、%num
を使用することで、関数や文字列のフォーマットなしで目的の値を出力できます。
Python の round()
関数を使用して、浮動小数点を固定幅にフォーマットする
round()
関数を使用して、小数点以下の桁数を修正することもできます。この関数は、入力された数値の小数点以下の桁数を制限します。また、桁が値 5
より大きい場合、制限が上限積分値に設定されている桁を四捨五入します。
浮動小数点数を取り、それを変数 num
に割り当てましょう。出力するときは、round()
関数を使用して、小数点以下の桁数を制限します。
サンプルコード:
# python 3.x
num = 2.37682
print(round(num, 3))
出力:
2.377
round 関数の構文は round(number, digits)
です。ここでは、引数 number
は必須ですが、引数 digits
はオプションです。number
は変数として入力することもできます。引数 digits
に何も渡されない場合、結果として number
の整数部分のみが取得されます。
上記のプログラムでは、値 2.37682
を最初の引数 num
に渡しましたが、値 3
を round()
内の 2 番目の引数に渡したため、小数点以下 3 桁に丸められました。方法。