Pythonで小数点を自在に操作!math.floor()とmath.ceil()で切り捨て・切り上げ
Pythonで数値を扱う際、小数点以下を切り捨てたり、切り上げたりする操作は非常によく行われます。組み込み関数だけでは難しいこれらの処理も、mathモジュールの**math.floor()とmath.ceil()**を使えば簡単に実現できます。この記事では、これらの関数の使い方と、具体的なコード例を交えて詳しく解説します。
目次
✂️ 小数点以下を切り捨てる:math.floor()
math.floor()関数は、与えられた数値以下の最大の整数を返します。つまり、小数点以下を切り捨てる効果があります。
math.floor()の基本的な使い方
math.floor()は、正の数に対しても負の数に対しても、常に「与えられた数以下で最も大きい整数」を返します。
import math
# math.floor()の基本的な使い方
print(math.floor(3.14)) # 3
print(math.floor(3.99)) # 3
print(math.floor(-2.1)) # -3 (例: -2.1以下の最大の整数は-3)
正の数の場合は一般的な切り捨てと同じ動作になりますが、負の数の場合は注意が必要です。例えば、-2.1のmath.floor()は-3になります。これは、数直線上で-2.1の左側にある最も近い整数が-3だからです。
⬆️ 小数点以下を切り上げる:math.ceil()
一方、math.ceil()関数は、与えられた数値以上の最小の整数を返します。これは小数点以下を切り上げる操作に相当します。
math.ceil()の基本的な使い方
math.ceil()は、正の数に対しても負の数に対しても、常に「与えられた数以上で最も小さい整数」を返します。
import math
# math.ceil()の基本的な使い方
print(math.ceil(3.14)) # 4
print(math.ceil(3.01)) # 4
print(math.ceil(-2.9)) # -2 (例: -2.9以上の最小の整数は-2)
こちらも負の数の場合に注意が必要です。-2.9のmath.ceil()は-2になります。これは、数直線上で-2.9の右側にある最も近い整数が-2だからです。
int()関数との違い
Pythonの組み込み関数である**int()も小数点を扱えますが、これは常に小数点以下を切り捨てるわけではありません**。int()は、数値を整数型に変換する際にゼロ方向へ丸めます。
int()とmath.floor()の違い
正の数の場合はint()とmath.floor()は同じ結果になりますが、負の数の場合は結果が異なります。
import math
# int()とmath.floor()の違い
print(int(3.8)) # 3
print(math.floor(3.8)) # 3
print(int(-3.8)) # -3 (ゼロ方向へ丸める)
print(math.floor(-3.8)) # -4 (数直線上で-3.8以下の最大の整数)
この違いを理解しておくことは、意図しない結果を避けるために重要です。
まとめ
Pythonで小数点以下を切り捨てたい場合は**math.floor()を、切り上げたい場合はmath.ceil()**を使用しましょう。特に負の数を扱う際には、int()関数との違いを意識することが大切です。これらの関数を使いこなすことで、数値処理の柔軟性が大きく向上します。
■「らくらくPython塾」が切り開く「呪文コーディング」とは?
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

