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コードが書けるようになりますよ!