Pythonの整数と浮動小数点数の違いとは?数値型の基本を解説
生徒
「Pythonで数字を使いたいんですけど、『整数』とか『浮動小数点数』って何ですか?どっちも数字ですよね?」
先生
「たしかにどちらも数字ですが、Pythonではそれぞれ別の扱いになります。整数は小数点のない数字、浮動小数点数は小数点を含む数字です。」
生徒
「なるほど…でも実際にどう違うのかイメージがわきません。」
先生
「じゃあ今回は、Pythonで使う『整数(int型)』と『浮動小数点数(float型)』の違いについて、具体例と一緒に詳しく解説していきましょう。」
1. Pythonで使える数値型の基本
Pythonでは、数字を扱うために数値型(numeric type)というデータ型が用意されています。数値型を正しく理解しておくと、計算ミスやエラーを防ぎやすくなり、初心者のうちから安心してプログラムを書けるようになります。
Pythonの数値型の中でも、特に使用頻度が高く、最初に覚えるべきなのが次の2種類です。
- 整数(int型):1、100、-5 のように小数点を含まない数字。人数、回数、点数など「きっちりした数」を表すときによく使います。
- 浮動小数点数(float型):3.14、-0.5、2.0 のように小数点を含む数字。身長、重さ、割合、金額の計算などで活躍します。
一見すると同じ「数字」ですが、int型とfloat型では、計算結果の型や表示のされ方が変わることがあります。そのため、Pythonではこの2つを明確に区別して扱っています。
まずは「小数点があるかどうか」で型が決まる、という感覚を持つだけでも十分です。ここを押さえておくと、後の計算処理がとても理解しやすくなります。
count = 3 # 整数(int型)
price = 2.5 # 浮動小数点数(float型)
print(count)
print(price)
この例では、3は整数なのでint型、2.5は小数点があるためfloat型としてPythonに認識されます。数字の書き方だけで型が決まる点が、Pythonの分かりやすい特徴です。
2. 整数(int型)の特徴と使い方
整数(int型)とは、小数点を持たない数値のことです。たとえば「1」「10」「-5」のような数が整数にあたります。Pythonでは、特別な設定をしなくても、数値を書くだけで自動的にint型として扱われるため、プログラミング未経験者でも直感的に使えます。
a = 10
b = -3
print(a + b)
7
上の例では、変数aに「10」、変数bに「-3」という整数を代入し、それらを足し算しています。printは結果を画面に表示する命令で、計算結果の「7」がそのまま出力されます。
整数は、足し算(+)、引き算(−)、掛け算(×)、割り算(÷)といった四則演算だけでなく、「どちらが大きいか」「等しいかどうか」を調べる比較処理にもよく使われます。また、小数を扱うよりも内部処理がシンプルなため、処理が速く、メモリ使用量が少ないという特徴があります。数を数える処理や回数の管理など、プログラムの基本となる場面で頻繁に利用されます。
3. 浮動小数点数(float型)の特徴と使い方
浮動小数点数(float型)とは、小数点を含む数値を扱うためのデータ型です。Pythonでは、数値の中に「.(ドット)」が入っていると、自動的にfloat型として認識されます。たとえば、円周率やお金の計算、割合(パーセント)など、小数を扱いたい場面でよく使われます。
x = 3.14
y = 2.0
print(x * y)
6.28
上の例では、3.14と2.0という小数を掛け算しています。整数(int型)と違い、float型は小数を含んだまま計算できるのが大きな特徴です。Python初心者の方でも、特別な設定をしなくても自然に使えるのがポイントです。
ただし、float型には注意点もあります。それは、計算結果にわずかな誤差が出ることがあるという点です。これはPythonの問題ではなく、コンピューターが内部で小数を2進数として扱っていることが原因です。
print(0.1 + 0.2)
0.30000000000000004
人間の感覚では「0.3」になるはずですが、実際には少しだけズレた値が表示されます。このような挙動はfloat型ではよくあることなので、初心者の方は「小数の計算では誤差が出る場合がある」と覚えておくと安心です。
4. 整数と浮動小数点数の違いを比較
プログラミングでは「数値」を扱う場面がとても多く、その代表的な型が int型(整数) と float型(浮動小数点数) です。 一見するとどちらも「数字」なので同じように思えますが、扱える値・計算結果・誤差の出方に大きな違いがあります。 ここでは、プログラミング未経験の方でもイメージしやすいように、それぞれの特徴を比較して理解していきましょう。
| 種類 | 例 | 特徴 |
|---|---|---|
| int型(整数) | 1, 100, -5 | 小数点を持たない数値。計算が正確で処理が速い |
| float型(浮動小数点数) | 3.14, -0.5, 2.0 | 小数点を扱えるが、計算結果に誤差が出ることがある |
例えば「人数」や「個数」のように小数が不要なデータは int型 が向いています。 一方で「身長」「金額」「割合」など、小数が必要な場合は float型 を使います。 数値の意味に合わせて型を選ぶことが、バグを防ぐコツです。
実際にPythonで、int型とfloat型の違いを見てみましょう。
a = 10 # int型(整数)
b = 3.0 # float型(小数)
print(a + b) # int + float の計算
print(type(a))
print(type(b))
上の例では、整数(int)と小数(float)を足し算しています。 Pythonではこのような場合、自動的に float型の計算結果 になります。 この挙動を知らないと「なぜ小数になるの?」と混乱しやすいので、初心者のうちに覚えておきましょう。
5. 型の確認にはtype()関数を使おう
Pythonでは、変数の中身が「整数(int)」なのか「小数(float)」なのかを正しく理解することがとても大切です。
数値は見た目が似ていても、型が違うと計算結果やプログラムの動きが変わることがあります。
そんなときに役立つのが、変数の型を調べられる type() 関数です。
type()関数に変数を入れると、その変数がどのデータ型なのかをPythonが教えてくれます。
プログラミング未経験の方は、「今この変数はどんな種類のデータなのか?」を確認するクセをつけると、
エラーの原因が見つけやすくなります。
n = 5
print(type(n))
f = 5.0
print(type(f))
<class 'int'>
<class 'float'>
上の例では、n は整数なので int、f は小数なので float と表示されています。
このように type() 関数を使えば、「思っていた型と違った」というミスを防ぐことができます。
数値計算や条件分岐がうまく動かないときは、まず 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の計算処理がより楽しくなりますよ。」