Pythonで整数を四捨五入、切り上げ、切り捨てする

Pythonを使って整数の四捨五入、切り上げ、切り捨てをしたかったんですが、軽く調べてみたところ、あまり上手い方法が見つからなかったので、自力でコードを書いて処理してみました。

おまじない

おまじないを唱えます。mathクラスから”floor”と”ceil”をインポートします。あと、実験用の変数を用意しておきます。

# coding: UTF-8
from math import floor
from math import ceil

a = 18
b = 83
c = 75

整数の四捨五入

Pythonで整数を四捨五入するには、”round”メソッドを使います。ひとつめの引数に対象となる値、ふたつめの引数に四捨五入する桁数を与えます。ふたつめの引数を負の値にすると、整数部の四捨五入ができます。float型で返ってくるので、int型にキャストします。

print a
print round(a,-1) #これだとfloatで返ってくる
print int(round(a,-1))

実行結果:

18
20.0
20

整数の切り上げ

Pythonで数字を切り上げるには”ceil”メソッドを使うんですが、対象となるのは少数部で、整数の切り上げができません。軽く調べてみましても、整数の切り上げができる関数がなさそうでした。そこで苦肉の策をとるんですが、一度float型にキャストしておいて、桁数を操作して、”ceil”メソッドで切り上げを行い、もう一度int型に戻します。

もっと良い方法があるような気がするんですけど、誰か知ってる人がいたら教えてください。お願いします。何でもしますから!

print b
fb = float(b)
ib = int(ceil(fb * 0.1) * 10)
print ib

実行結果:

83
90

整数の切り捨て

Pythonの切り捨ては、”float”メッソドを”ceil”メソッドと同様に使います。

print c
fc = float(c)
ic = int(floor(fc * 0.1) * 10)
print ic

実行結果:

75
70

シェアしてもらえるとうれしいです。゚(´っωc`)゚。