競プロ python

【全5パターン解説】5分で分かるpythonの切り捨て、切り上げ方法

pythonでの端数処理の方法まとめ。

たびすけ
競プロでも端数処理は頻出なのできちんと覚えましょう

説明の前提

  • \(N=\)割られる数
  • \(M=\)割られる数

切り捨て

//演算子

使う場面

  • \(整数 \div 整数\)の計算結果を切り捨てる時

整数と整数の割り算の結果を整数で取得したいときには//演算子を使いましょう。

注意点として\(M\)または\(N\)が非整数の場合、計算結果が整数であっても少数点以下が出力されます。

整数//整数

print(5 // 2)
2

非整数//整数

print(5.332 // 2)
2.0
たびすけ
整数\(\div\)整数の計算結果を切り捨てる場合には//演算子が一番です!

int()

使う場面

  • 非整数を切り捨てて整数に変換する時
  • 計算結果を切り捨てて整数に変換する時

変数を切り捨て

M = 5.332
N = 2
print(M)
print(int(M))
5.332
5

計算結果を切り捨て

M = 5.332
N = 2
print(M / N)
print(int(M / N))
2.666
2

math.floor()

使う場面

  • 非整数を切り捨てて整数に変換する時
  • 計算結果を切り捨てて整数に変換する時

変数を切り捨て

import math


M = 5.332
N = 2
print(M)
print(math.floor(M))
5.332
5

計算結果を切り捨て

import math


M = 5.332
N = 2
print(M / N)
print(math.floor(M / N))
2.666
2
たびすけ
私は、整数\(\div\)整数の計算結果を切り捨てる時は//演算子
非整数を切り捨てて整数に変換する時はint()を使っています!
math.floor()はほとんど使っていません。

切り上げ

式を工夫

使う場面

  • \(整数 \div 整数\)の計算結果を切り上げる時

\((M+N-1)\)//\(N\)と計算すると計算結果が切り上げられます。

注意点として//演算子を使うので\(M\)または\(N\)が非整数の場合、計算結果が整数であっても少数点以下が出力されます。

整数//整数

M = 5
N = 2
print((M + N - 1) // N)
3

非整数//整数

M = 5.332
N = 2
print((M + N - 1) // N)
3.0
たびすけ
なれると\((M+N-1)\)//\(N\)はコーディングが簡単です!

math.ceil()

使う場面

  • 非整数を切り上げて整数に変換する時
  • 計算結果を切り上げて整数に変換する時

変数を切り上げ

import math


M = 5.332
N = 2
print(M)
print(math.ceil(M))
5.332
6

計算結果を切り上げ

import math


M = 5.332
N = 2
print(M / N)
print(math.ceil(M / N))
2.666
3

端数処理まとめ

端数処理の方法を確認しましたが、まとめると次のようになります。

私の使い分け

  • \(M \div N\)の計算結果の端数処理は//演算子
  • 変数を切り捨てて整数に変換するint()
  • それ以外mathライブラリ(ほとんど使ったことがない)
たびすけ
競プロで端数処理は頻出なので迷わずに使えるようにしましょう!
私はmath.ceil()math.floor()で迷うのと、コーディング楽なので//演算子を使うケースが多いです。

-競プロ, python