Pythonの数値型を完全ガイド!整数と浮動小数点数の違いを初心者向けに解説
生徒
「Pythonで数字を使いたいのですが、intとfloatって何が違うんですか?」
先生
「とても大切なポイントですね。intは整数、floatは小数を扱う型です。」
生徒
「どんなときにどっちを使えばいいか迷いそうです。」
先生
「では、Pythonの数値型の基本から順番に学んでいきましょう!」
1. Pythonで使える数値型とは?
Pythonで数を扱うとき、まず知っておきたいのが「整数(int型)」と「浮動小数点数(float型)」の2種類です。整数は小数点のない数、浮動小数点数は小数点を含む数を表します。どちらも四則演算の基礎になり、はじめてのプログラムでも頻繁に登場します。
たとえば、りんごの個数のように数えられる量は整数、商品の値段や割合、身長のように細かい値を表すときは小数(float)を使います。Pythonでは数を書いた時点で自動的に型が決まり、3はint、3.0はfloatとして扱われます。
かんたんなサンプル
# 個数は整数(int)、単価は小数(float)
apples = 3 # int
unit_price = 120.0 # float
# 掛け算の結果は小数を含む計算になる
total = apples * unit_price
print(total) # 360.0 と表示される
この例では、applesが整数、unit_priceが小数なので、計算結果のtotalは小数で出力されます。買い物や料金計算など、現実の場面をイメージすると型の使い分けが理解しやすくなります。
2. 整数(int型)の特徴
整数は、小数点を含まない数字を表す型です。0・正の数・負の数のすべてを扱えます(例:「0」「1」「100」「-5」)。Pythonの整数は桁数の上限にほぼ制限がなく、必要に応じて自動的に大きな桁へ拡張されます。読みやすくするために桁区切りとしてアンダースコア(_)を使うこともできます(例:1_000_000)。
数を数える、在庫を合計する、回数を管理するなど、日常的な計算の土台になります。足し算・引き算・掛け算などの基本的な演算で直感的に使えるため、はじめてのプログラムでも迷いにくいのが特徴です。
# 整数(int)の基本
count = 10 # 小数点なしは int
stock = 1_200 # 桁区切りで読みやすく
debt = -5 # 負の整数もOK
# 基本的な演算
total_items = count + 3
balance = stock + debt
# とても大きな整数(自動で拡張される)
big_number = 10 ** 30
print(type(count)) # <class 'int'>
print(total_items) # 13
print(balance) # 1195
print(big_number) # 1000000000000000000000000000000
まずは「数える」「合計する」といった身近な場面でintを使い、必要に応じてtype()で型を確認する習慣をつけると理解が進みます。
3. 浮動小数点数(float型)の特徴
浮動小数点数(float)は、小数点を含む数字です。たとえば「3.14」「0.5」「-2.718」などです。
float型は、小数を含む計算や、割り算の結果、小数の表現などに使われます。
pi = 3.14
print(type(pi)) # <class 'float'>
4. int型とfloat型の違いを確認してみよう
ここでは、intとfloatの違いを具体的な例で見てみましょう。以下のコードでは、整数と小数をそれぞれprint()で出力しています。
a = 5
b = 2.0
print(a + a) # int同士の計算 → 結果もint
print(a + b) # intとfloatの計算 → 結果はfloat
10
7.0
このように、floatが含まれる計算では、結果もfloatになります。
5. 小数点がなくてもfloatになるケースに注意
たとえば割り算(/)を使うと、たとえ割り切れてもfloat型になります。
x = 6 / 3
print(x)
print(type(x)) # floatになる
2.0
<class 'float'>
整数の割り算にしたいときは、「//」という記号を使います。これは「整数除算」と呼ばれます。
y = 6 // 3
print(y)
print(type(y)) # intになる
2
<class 'int'>
6. float型の注意点と丸め誤差
float型では、見た目には正しそうでも、実は正確でない数値が出ることがあります。これは「丸め誤差」と呼ばれる現象です。
たとえば、0.1を3回足すと「0.3」になりそうですが、実際にはちょっとズレます。
x = 0.1 + 0.1 + 0.1
print(x)
0.30000000000000004
このような誤差は、floatの計算では避けられません。お金の計算など、正確な値が必要な場合は、decimalというモジュールを使うことがあります。
7. どちらを使えばいいか迷ったときの目安
以下のように使い分けるとわかりやすいです。
- 整数だけで十分 → int型
- 小数が必要、割り算の結果など → float型
- お金や正確な数値が必要 → decimalモジュール
Pythonは変数の型を自動で判断してくれるので、初心者のうちはあまり深く考えずに使ってみて、動きや型をprint()で確認すると良いです。
8. type()で型を確認しよう
Pythonでは、type()を使うと変数の型を確認できます。初心者のうちは、自分が使っている値がintなのかfloatなのかを確認する習慣をつけると、間違いを減らせます。
a = 5
b = 3.5
print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
9. floatをintに変換したいとき
float型を整数に変換したいときは、int()を使います。ただし、小数点以下は切り捨てられるので注意が必要です。
price = 123.45
print(int(price)) # 123に切り捨てられる
123
逆に、整数をfloatにしたいときは、float()を使えば小数点付きの数字に変換できます。
10. intとfloatは一緒に使える
Pythonでは、intとfloatを混ぜて計算しても自動で処理してくれます。floatが含まれていれば、結果もfloatになります。
a = 10
b = 2.5
print(a + b) # 12.5(floatになる)
12.5
このように、Pythonの数値型は柔軟に使えるように設計されています。
まとめ
Pythonにおける数値型の基本として、整数(int型)と浮動小数点数(float型)の違いを理解することは、すべての初心者にとって欠かせない第一歩です。整数型は小数点を含まない数値を、浮動小数点数型は小数を扱うために用いられます。この違いをきちんと認識しておくことで、予期しないエラーや計算結果のズレを防ぐことができます。
特に初心者がつまずきやすいポイントとしては、割り算(/)を使うと結果がfloat型になることや、float型の丸め誤差などがあります。たとえば「0.1 + 0.1 + 0.1」が「0.3」にならず「0.30000000000000004」となるのは、Pythonだけでなく多くのプログラミング言語に共通する仕様です。これに戸惑う人は多いですが、仕組みを知っていれば驚かずに対応できます。
もうひとつ大事なのは、Pythonでは数値型の変換が自由にできるという点です。int()関数を使えばfloatを整数に、float()関数を使えばintを小数に変換できます。こうした柔軟性を活かせば、さまざまな場面での数値処理が簡単になります。
また、type()関数を使って型を確認する習慣をつけておくと、自分がどんな型を使っているのかがわかり、ミスを防げます。Pythonは型を自動で判断してくれる言語ではありますが、「どの型を使っているか」を意識することは、後々の応用でも役立ちます。
数値型を正しく使えるようになると、Pythonでできることの幅が一気に広がります。計算、グラフ描画、統計処理、AIや機械学習に至るまで、あらゆる場面で数値型の知識は必要です。最初の一歩として、int型とfloat型の違いや使い方をしっかり押さえておきましょう。
以下は、この記事の内容を復習できる簡単な練習です。
練習:数値型の動きを確認してみよう
a = 4
b = 2.5
c = a / b
d = int(c)
print("aの型:", type(a))
print("bの型:", type(b))
print("cの型:", type(c))
print("dの型:", type(d))
このコードを実行してみると、それぞれの変数がどんな型を持っているか確認できます。型の動きを見る練習としてとても効果的です。
生徒
「float型って便利だけど、思ってたより注意が必要なんですね。0.3にならないことに驚きました。」
先生
「そうですね。floatは計算を簡単にしてくれる一方で、丸め誤差には気をつけないといけません。でもこれはPythonに限らず、コンピュータの世界では一般的なことなんです。」
生徒
「なるほど…。じゃあ、お金の計算をするときはfloatを使わない方がいいんですね?」
先生
「正確さが求められる場合はdecimalモジュールを使うのがベストです。今はfloatとintの違いをしっかり理解するだけで十分ですよ。」
生徒
「type()で型を確認するのも便利ですね。初心者にはすごく役立ちそうです。」
先生
「そうです。わからないときには、まずtype()で確認してみましょう。それが正しく使えるようになれば、数値型はもう怖くありませんよ。」