Python で浮動小数点を文字列にフォーマットする

Ankur Baral 2023年1月30日
  1. フォーマット仕様と format() メソッドを使用して、浮動小数点数を固定幅にフォーマットする
  2. リスト内の浮動小数点数を固定幅にフォーマットする
  3. Python の%演算子を使用して、浮動小数点をフォーマットして幅を固定する
  4. Python の round() 関数を使用して、浮動小数点を固定幅にフォーマットする
Python で浮動小数点を文字列にフォーマットする

この記事では、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 に渡しましたが、値 3round() 内の 2 番目の引数に渡したため、小数点以下 3 桁に丸められました。方法。

関連記事 - Python Float