Pythonの整数と浮動小数点数の違いとは?数値型の基本を解説
生徒
「Pythonで数字を使いたいんですけど、『整数』とか『浮動小数点数』って何ですか?どっちも数字ですよね?」
先生
「たしかにどちらも数字ですが、Pythonではそれぞれ別の扱いになります。整数は小数点のない数字、浮動小数点数は小数点を含む数字です。」
生徒
「なるほど…でも実際にどう違うのかイメージがわきません。」
先生
「じゃあ今回は、Pythonで使う『整数(int型)』と『浮動小数点数(float型)』の違いについて、具体例と一緒に詳しく解説していきましょう。」
1. Pythonで使える数値型の基本
Pythonには数値型(numeric type)と呼ばれるデータ型があります。数値型は主に次の2つに分かれます。
- 整数(int型):1、100、-5 などの小数点のない数字
- 浮動小数点数(float型):3.14、-0.5、2.0 などの小数を含む数字
これらはPythonが数字をどう扱うかに影響します。特に計算の結果や表示が変わることもあるので、しっかり区別して使いましょう。
2. 整数(int型)の特徴と使い方
整数(int型)は、数の中でも小数点がないものです。Pythonでは簡単に使えます。
a = 10
b = -3
print(a + b)
7
整数は四則演算(+−×÷)や比較(大きい・小さい)にも使えます。メモリも節約できて処理も速いのが特徴です。
3. 浮動小数点数(float型)の特徴と使い方
浮動小数点数(float型)は、小数点を含む数字です。Pythonでは数字の中に「.(ドット)」があると、自動的にfloat型として認識されます。
x = 3.14
y = 2.0
print(x * y)
6.28
float型は計算に柔軟ですが、実は「誤差」が出ることもあります。コンピューターが小数を正確に表現できないことがあるからです。
print(0.1 + 0.2)
0.30000000000000004
このように、float型では思った通りの結果が出ないこともあるので注意が必要です。
4. 整数と浮動小数点数の違いを比較
ここで、int型とfloat型の違いをまとめてみましょう。
| 種類 | 例 | 特徴 |
|---|---|---|
| int型(整数) | 1, 100, -5 | 小数点なし。処理が速い |
| float型(小数) | 3.14, -0.5, 2.0 | 小数あり。誤差が出ることがある |
5. 型の確認にはtype()関数を使おう
変数が整数型か浮動小数点型かを確認したいときは、type()関数を使います。
n = 5
print(type(n))
f = 5.0
print(type(f))
<class 'int'>
<class 'float'>
このようにtype関数を使えば、データがどの型かすぐにわかります。
6. int型とfloat型の自動変換(暗黙の型変換)
Pythonでは、intとfloatを混ぜて計算すると、自動的にfloatに変換されます。
a = 2
b = 1.5
result = a + b
print(result)
print(type(result))
3.5
<class 'float'>
このように、floatが混ざると結果はfloat型になります。
7. 明示的な型変換(キャスト)で制御する
Pythonでは、意図的に型を変えたいときに「キャスト」と呼ばれる変換を使います。
int():小数を整数に変換(小数点以下切り捨て)float():整数を小数に変換
print(int(3.9)) # → 3
print(float(5)) # → 5.0
このようにして、型を明確に変えて使うことができます。
まとめ
整数と浮動小数点数の特徴をふりかえって整理しよう
Pythonで扱う数値型には「整数(int型)」と「浮動小数点数(float型)」という二つの大きな分類があります。どちらも数字を扱うための大切なデータ型ですが、内部での表現方法や計算結果の性質が異なるため、違いを理解して正しく使い分けることが重要になります。整数型は小数点を含まない数字を扱うための型で、計算が速く誤差が出にくい特徴があります。一方、浮動小数点数は小数を含む数字を扱うため、より柔軟な計算が可能ですが、内部の仕組みによってわずかな誤差が生じることがあります。
プログラムを書くときには、どのような計算をしたいのか、どのように表示したいのかに応じてデータ型を選ぶ必要があります。たとえば、整数のまま利用したい場合にはint型を使い、小数点を含む計算が必要な場合にはfloat型を使うのが一般的です。また、四則演算や比較演算を行う際には、データ型の違いが結果に影響することもあるため、型の特性をよく理解しておくと安心です。特にfloat型は「0.1 + 0.2」のような計算で誤差が発生することがあるため、金額や精度の必要な計算では注意が必要です。
また、今回学んだ「型の自動変換(暗黙の型変換)」は、int型とfloat型を混在させたときに起こる性質で、Pythonが自動的にfloat型に変換して計算を行います。この動作により、扱いやすさは高まりますが、結果の型が変わる可能性があるため、意図しない動きが発生しないように気をつける必要があります。特に関数の戻り値や複数の値を処理するときには、型が意図した通りのままか確認したり、必要に応じて型変換を行うと良いでしょう。
サンプルプログラム:整数と浮動小数点数を扱うクラス例
ここでは、整数と浮動小数点数の特徴をふまえて、計算に使う値をまとめて管理する簡単なクラスを例として紹介します。記事と同じようにclassを使い、数値型の扱い方をイメージしやすく仕組み化した例になっています。
class Calculator:
def __init__(self, base_value):
self.base_value = base_value # int型またはfloat型を保持
def add(self, value):
return self.base_value + value
def multiply(self, value):
return self.base_value * value
def to_float(self):
return float(self.base_value)
def to_int(self):
return int(self.base_value)
calc = Calculator(10)
print(calc.add(2.5)) # floatとの計算
print(calc.multiply(3)) # intとの計算
print(calc.to_float()) # floatへ変換
print(calc.to_int()) # intへ変換
上記のプログラムでは、整数と浮動小数点数の特徴を活かしながら計算を行い、必要に応じてデータ型を変換する処理をまとめています。add()メソッドやmultiply()メソッドは、整数型と浮動小数点型の両方に対応でき、Pythonの型変換の仕組みを自然に理解できるような構成になっています。また、to_int()やto_float()によって明示的に型を変えられるため、どの型を使って計算するべきかを明確に保ちながら処理を作成できる点も学習に役立ちます。
整数と浮動小数点数は、Pythonの中でも非常に基本的でありながら、奥が深く、実際の開発や日常的なプログラムでも絶えず利用されるものです。型を正しく理解することで、誤差の発生を避けたり、効率的な処理を実現したり、読みやすいコードを書くことにもつながります。今回の学習をきっかけに、データ型を意識しながらコードを書く習慣を身につけることで、より自由で正確なプログラミングができるようになるでしょう。
生徒
「きょうの学習で、整数と浮動小数点数の違いがよくわかりました。特にfloatで誤差が出ることがあるのはちょっと驚きました。」
先生
「その気づきはとても大事ですよ。floatの誤差は知らないと困ることもあるので、仕組みを知っておくと安心です。」
生徒
「整数と小数を混ぜて計算すると自動でfloatになるのも便利ですね。でも結果の型が変わるってことを覚えておかないと混乱しそうです。」
先生
「その通りです。計算結果の型が何になるのか意識するのは、とてもよいプログラミングの習慣ですよ。」
生徒
「サンプルのクラスもわかりやすかったです!値をまとめて扱えるから、型ごとの計算を意識しやすく感じました。」
先生
「よく理解していますね。クラスにまとめることで動きが整理され、データ型の違いを確認しながら安全に処理できます。」
生徒
「これからは計算に使う数字がintなのかfloatなのかを意識しながら書いてみます。型変換も練習してみます!」
先生
「素晴らしい姿勢ですね。数値型をしっかり理解すると、Pythonの計算処理がより楽しくなりますよ。」