Pythonで文字列を浮動小数点数に変換する方法
紹介
この記事では、Pythonのfloat()関数を使用して文字列を浮動小数点数に変換します。また、Pythonのstr()関数を使用して浮動小数点数を文字列に変換します。
計算や連結に使用する前にデータ型を適切に変換することが重要です。これにより実行時エラーを防ぐことができます。
前提条件
このチュートリアルを完了するには、以下が必要です:
- Python 3のインストールに慣れていること。また、Pythonでのコーディングに慣れていること。Python 3でのコーディングシリーズや、PythonのためのVS Codeを使用する方法。
このチュートリアルはPython 3.9.6でテストされました。
float()関数を使用すること
Pythonでは、float()関数を使用して文字列を浮動小数点数に変換できます。これは、オブジェクトを浮動小数点数に変換するために使用される組み込み関数です。内部では、float()関数は指定されたオブジェクトの__float__()関数を呼び出します。
例
Pythonで文字列を浮動小数点数に変換する例を見てみましょう。
input_1 = '10.5674'
input_1 = float(input_1)
print(type(input_1))
print('Float Value =', input_1)
出力 :
<class 'float'>
Float Value = 10.5674
''10.5674''の文字列値は'10.5674'の浮動小数点値に変換されました。
なぜ文字列を浮動小数点数に変換する必要があるのですか?
ユーザー入力を端末から受け取る場合やファイルから読み取る場合、受け取る浮動小数点値は文字列オブジェクトです。そのため、必要な演算(加算、乗算など)を行うために、明示的に浮動小数点に変換する必要があります。
input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)
input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)
print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')
注意:もしfプレフィックスを使った文字列フォーマットに慣れていない場合は、Pythonのf-stringsを読んでください。
このコードを実行し、input_1とinput_2に浮動小数点値を提供しましょう:
Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69
結果の合計は10.234と2.456で12.69です。
理想的には、ユーザーからの無効な入力があった場合に例外をキャッチするために、try-exceptブロックを使用すべきです。
str()関数を使用する
浮動小数点数を文字列に変換するには、str()関数を使用することもできます。これは、浮動小数点数の値を連結したい場合に必要になることがあります。
例
例を見てみましょう:
input_1 = 10.23
input_2 = 20.34
input_3 = 30.45
using f-string from Python 3.6+, change to format() for older versions
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')
このコードを実行しましょう:
Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45
10.23と20.34を連結すると、文字列'10.2320.34'が生成されます。このコードはまた、カンマ区切り値(CSV)の2つのバージョンも生成します。
上記のプログラムで浮動小数点数を文字列に変換しなければ、join()関数は例外をスローします。また、+演算子を使って連結することもできず、浮動小数点数同士を加算してしまいます。
結論
私たちのGitHubリポジトリから完全なPythonスクリプトやその他のPythonの例をチェックできます。
参考文献:
float()の公式ドキュメント
