Pythonのfloat()関数を徹底解説!浮動小数点数への変換から注意点まで


 

Pythonで数値計算を行う際、整数だけでなく小数(浮動小数点数)を扱う機会は非常に多いです。特に、文字列で表現された数値を計算に使いたい場合や、整数を小数として扱いたい場合に活躍するのがfloat()関数です。この記事では、Pythonのfloat()関数の基本的な使い方から、知っておくべき注意点、さらには活用事例までを初心者にもわかりやすく解説します。

 

float()関数とは?Pythonにおける浮動小数点数への型変換

 

Pythonのfloat()関数は、引数として渡された値を浮動小数点数(floating-point number)に変換するための組み込み関数です。異なるデータ型の値を小数として扱いたい場合に非常に役立ちます。

 

基本的な使い方:文字列からの変換

 

最もよく使われるのは、数字で構成された文字列を浮動小数点数に変換するケースです。これは、ユーザーからの入力が文字列として受け取られる場合などに非常に便利です。

Python
 
# 文字列を浮動小数点数に変換する例
str_num = "3.14"
float_num = float(str_num)
print(float_num) # 出力: 3.14
print(type(float_num)) # 出力: <class 'float'>

# 整数を表す文字列も変換可能
str_int = "100"
float_from_int_str = float(str_int)
print(float_from_int_str) # 出力: 100.0

注意点: 数字や小数点、符号(+,-)以外の文字が含まれている文字列をfloat()関数で変換しようとすると、ValueErrorが発生します。

Python
 
# エラーになる例
# invalid_str = "3.14abc"
# invalid_float = float(invalid_str) # ValueError: could not convert string to float: '3.14abc'

# invalid_str2 = "円周率3.14"
# invalid_float2 = float(invalid_str2) # ValueError: could not convert string to float: '円周率3.14'

 

整数からの変換

 

float()関数は、整数を浮動小数点数に変換することもできます。この場合、.0が追加されます。

Python
 
# 整数を浮動小数点数に変換する例
integer_val = 5
float_from_int = float(integer_val)
print(float_from_int) # 出力: 5.0
print(type(float_from_int)) # 出力: <class 'float'>

 

他の型からの変換

 

ブール値(True/False)を変換することも可能です。True1.0に、False0.0に変換されます。

Python
 
print(float(True))  # 出力: 1.0
print(float(False)) # 出力: 0.0

 

float()関数の注意点と活用事例

 

 

1. 浮動小数点数計算の精度問題

 

コンピュータは浮動小数点数を厳密に表現できない場合があるため、計算結果にわずかな誤差が生じることがあります。これはfloat()関数自体の問題ではありませんが、浮動小数点数を扱う上で常に意識すべき点です。

Python
 
# 浮動小数点数の精度問題の例
# 0.1を10回足しても、厳密に1.0にはならない可能性がある
sum_val = 0.0
for _ in range(10):
    sum_val += 0.1
print(sum_val) # 出力例: 0.9999999999999999 (環境により異なる)

# 厳密な計算が必要な場合はdecimalモジュールを検討
from decimal import Decimal
print(Decimal('0.1') * 10) # 出力: 1.0

 

2. ユーザー入力の数値処理

 

ウェブフォームやコマンドライン引数など、ユーザーからの数値入力は通常文字列として受け取られます。計算を行うためには、float()関数を使って数値型に変換する必要があります。

Python
 
price_str = input("商品の価格を入力してください: ") # 例: "99.99"
quantity_str = input("購入数を入力してください: ") # 例: "2"

try:
    price = float(price_str)
    quantity = int(quantity_str) # 数量は整数が良い場合
    total_cost = price * quantity
    print(f"合計金額: {total_cost:.2f}円") # 小数点以下2桁で表示
except ValueError:
    print("有効な数値を入力してください。")

 

3. データ解析と科学計算

 

CSVファイルなどから読み込んだデータは、しばしば文字列として扱われます。数値として分析を行うためには、float()関数やPandasライブラリの型変換機能などを利用して数値型に変換する必要があります。

Python
 
# 例: データフレームの一部の列を浮動小数点数に変換
import pandas as pd
data = {'商品名': ['A', 'B'], '価格': ['123.50', '45.75']}
df = pd.DataFrame(data)
print("変換前:\n", df.dtypes)

df['価格'] = df['価格'].astype(float) # Pandasでfloat型に変換
print("\n変換後:\n", df.dtypes)

 

float()関数とよく比較される関数

 

 

int()関数との違い

 

float()関数が浮動小数点数(小数)へ変換するのに対し、int()関数は整数へ変換します。int()関数は小数点以下を切り捨てます。

Python
 
print(float(10))    # 出力: 10.0
print(int(3.14))    # 出力: 3 (切り捨て)
print(float("3.14"))# 出力: 3.14
print(int("3"))     # 出力: 3

 

str()関数との違い

 

float()関数が他の型を浮動小数点数に変換するのに対し、str()関数は他の型を文字列に変換します。

Python
 
num = 123.45
str_num = str(num)
print(str_num) # 出力: "123.45"
print(type(str_num)) # 出力: <class 'str'>

 

まとめ

 

Pythonのfloat()関数は、浮動小数点数を扱う上で不可欠なツールです。文字列や整数を小数として利用可能にすることで、幅広い数値計算やデータ処理の基盤となります。

  • float()関数は、値を浮動小数点数に変換します。

  • 数字や小数点、符号のみで構成された文字列を変換できます。

  • 整数を変換すると、末尾に.0が追加されます。

  • 浮動小数点数計算には、わずかな精度誤差が生じる可能性があることを理解しておきましょう。

この知識をしっかり身につけて、Pythonでのデータ処理や数値計算をより正確かつ効率的に進めていきましょう。

 


■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座