Python|小数点以下を切り捨て、切り上げする round(), ceil(), floor() の違いと使い方

1. はじめに

Pythonで数値を扱う際、「小数点以下をどう処理するか」はとても重要なテーマです。特に、round(), math.ceil(), math.floor()といった関数は、小数点以下の切り捨て・切り上げ・四捨五入を簡単に実現できる便利な機能です。

この記事では、Python|小数点以下を切り捨て、切り上げする round(), ceil(), floor() の違いと使い方をテーマに、初心者にもわかりやすく基本から実務での応用までを解説します。

 

2. Pythonの小数点処理|round(), ceil(), floor()の基本解説

round()|四捨五入する

round()は、指定した桁で数値を四捨五入します。

# 四捨五入
print(round(3.1415))       # 小数第1位で四捨五入 → 3
print(round(3.6))          # → 4
print(round(3.1415, 2))    # 小数第2位で四捨五入 → 3.14

実行結果:

3
4
3.14

math.floor()|小数点以下を切り捨て

math.floor()は、数値を小さい方向(負の無限)に丸めて整数にします。


import math

# 切り捨て
print(math.floor(3.9))   # → 3
print(math.floor(-3.9))  # → -4

実行結果:

3
-4

math.ceil()|小数点以下を切り上げ

math.ceil()は、数値を大きい方向(正の無限)に丸めて整数にします。

import math

# 切り上げ
print(math.ceil(3.1))   # → 4
print(math.ceil(-3.1))  # → -3

実行結果:

4
-3

 

3. よくある使い方・応用例

round()で金額表示を整える

例えば、表示する価格を100円単位に四捨五入したい場合:

price = 1234
rounded_price = round(price, -2)  # 100円単位で四捨五入
print(rounded_price)

実行結果:

1200

floor()で配送料などの切り捨て処理に

例えば、「5人で1つのピザを割り勘し、小数点以下を切り捨てて計算する」ケース:

import math

total = 3020
people = 5
per_person = math.floor(total / people)
print(per_person)  # 切り捨てで一人当たりの金額を計算

実行結果:

604

ceil()で座席予約や在庫数の計算に

「商品を3個ずつ箱詰めすると、何箱必要?」というケースでは切り上げが必要です。

import math

items = 10
box_size = 3
boxes_needed = math.ceil(items / box_size)
print(boxes_needed)

実行結果:

4

 

4. 注意点・エラー対策

round()の挙動に注意

Pythonのround()は、「偶数丸め(Banker’s Rounding)」を採用しています。つまり、0.5のような端数は、最も近い偶数に丸められます。

print(round(2.5))  # → 2 (偶数に丸め)
print(round(3.5))  # → 4

実行結果:

2
4

これは多くの言語と違うため注意が必要です。

math.ceil() / floor() を使うには import が必要

これらは math モジュールの関数なので、事前にimport文を書く必要があります。

# エラーになる例
print(math.ceil(3.2))  # mathが定義されていないのでエラー

# 正しい例
import math
print(math.ceil(3.2))

 

5. まとめ

この記事では、Pythonの round(), math.floor(), math.ceil()の違いと使い方を、コード例とともに解説しました。

  • round():四捨五入(ただし偶数丸め)
  • math.floor():小数点以下切り捨て
  • math.ceil():小数点以下切り上げ

実務では、価格の表示調整・在庫計算・割り勘の処理など、さまざまな場面で活用できます。

初心者のうちは挙動の違いをしっかり理解して、まずは小さなコードを書いて試してみるのがおすすめです。

これらの関数を正しく使えるようになると、より実用的なPythonコードが書けるようになりますよ!

タイトルとURLをコピーしました