Pythonで数値計算を行う際、整数(int)と浮動小数点数(float)の型変換(キャスト)は頻繁に使用される操作です。
例えば、整数のデータを計算のために小数にしたり、逆に小数の計算結果から小数点以下を取り除いて整数にしたりする場合です。
この記事では、float() 関数と int() 関数を使用した相互変換の方法と、特に float から int へ変換する際の「切り捨て」という挙動について解説します。
1. 整数から浮動小数点数へ変換する: float()
整数(int)を浮動小数点数(float)に変換するには、組み込み関数の float() を使用します。
変換を行うと、整数の末尾に .0 が付与されます。
構文:
浮動小数点数 = float(整数)
具体的な使用例
ゲームのスコア(整数)を、平均値計算などのために小数形式に変換する例です。
# 整数のスコア
current_score = 150
# float型に変換
score_float = float(current_score)
print(f"変換前: {current_score} (型: {type(current_score)})")
print(f"変換後: {score_float} (型: {type(score_float)})")
実行結果:
変換前: 150 (型: <class 'int'>)
変換後: 150.0 (型: <class 'float'>)
このように、値の大きさは変わりませんが、型が float になり、表記が 150.0 となります。
2. 浮動小数点数から整数へ変換する: int()
浮動小数点数(float)を整数(int)に変換するには、組み込み関数の int() を使用します。
重要な注意点: float から int への変換では、**小数点以下が「切り捨て」**られます。四捨五入ではない点に注意が必要です。
構文:
整数 = int(浮動小数点数)
具体的な使用例
体重などの測定データを整数値として扱いたい場合の例です。
# 浮動小数点数のデータ
weight_data = 65.85
temperature_data = 36.1
# int型に変換(小数点以下は切り捨て)
weight_int = int(weight_data)
temperature_int = int(temperature_data)
print(f"元の体重: {weight_data} -> 変換後: {weight_int}")
print(f"元の体温: {temperature_data} -> 変換後: {temperature_int}")
実行結果:
元の体重: 65.85 -> 変換後: 65
元の体温: 36.1 -> 変換後: 36
65.85 は四捨五入すれば 66 ですが、int() 関数を通すと 65 になります。
四捨五入したい場合: round()
もし、単なる切り捨てではなく、一般的な「四捨五入」を行ってから整数にしたい場合は、int() を使う前に round() 関数を使用します。
# 四捨五入してから整数にする
precise_value = 65.85
# round() は最も近い整数を返す
rounded_value = round(precise_value)
print(f"四捨五入結果: {rounded_value} (型: {type(rounded_value)})")
実行結果:
四捨五入結果: 66 (型: <class 'int'>)
まとめ
float(整数): 整数を小数に変換します(例:10->10.0)。int(小数): 小数を整数に変換します。この際、小数点以下は切り捨てられます(例:9.9->9)。- 四捨五入が必要な場合は
round()関数を使用します。
