【Python入門】算出演算子と端数処理|数値を丸める

算出演算子と端数処理|数値を丸める_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

Pythonで数値解析をするためには、基本となる数値演算を学ぶ必要があります。

その中でも基礎となるものとして、「算出演算子」や「端数処理」があります。

本記事では、そんなPython基礎となる算出演算子と端数処理について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonの算出演算子や端数処理について学びたい人
levtech-ad

算術演算子

Pythonで使用する算術演算子は下表の通りです。

演算子内容
a + b加算
a – b減算
a * b乗算
a / b除算
a % baをbで割った余り
a ** baのb乗
a // baをbで割った商

加算

“+”演算子の使用例を以下にご紹介します。

#input
x = 10 + 20
print("10 + 20 = {}".format(x))
#output
10 + 20 = 30

減算

“-“演算子の使用例を以下にご紹介します。

#input
x = 10 - 20
print("10 - 20 = {}".format(x))
#output
10 - 20 = -10

乗算

“*”演算子の使用例を以下にご紹介します。

#input
x = 10 * 20
print("10 * 20 = {}".format(x))
#output
10 * 20 = 200

除算

“/”演算子の使用例を以下にご紹介します。

#input
x = 10 / 20
print("10 / 20 = {}".format(x))
#output
10 / 20 = 0.5

剰余演算

“%”演算子の使用例を以下にご紹介します。

#input
x = 19 % 5
print("19 % 5 = {}".format(x))
#output
19 % 5 = 4

べき乗演算

“**”演算子の使用例を以下にご紹介します。

#input
x = 2 ** 5
print("2 ** 5 = {}".format(x))
#output
2 ** 5 = 32

整数除算

“//”演算子の使用例を以下にご紹介します。

#input
x = 19 // 5
print("19 // 5 = {}".format(x))
#output
19 // 5 = 3

切り捨て・切り上げ

数値の切り捨てと切り上げには、Pythonに標準として用意されている「天井関数」と「床関数」を使用します。

天井関数

ある実数Xに対して、X以上の最大の整数を返す関数を天井関数と言います。

mathモジュールのmath.ceil()を使用した例をご紹介します。

#input
import math

a = math.ceil(10)
b = math.ceil(-10)
c = math.ceil(5.55)
d = math.ceil(-5.55)

print("ceil(10)={}".format(a))
print("ceil(-10)={}".format(b))
print("ceil(5.55)={}".format(c))
print("ceil(-5.55)={}".format(d))
#output
ceil(10)=10
ceil(-10)=-10
ceil(5.55)=6
ceil(-5.55)=-5

床関数

ある実数Xに対して、X以下の最大の整数を返す関数を床関数と言います。

mathモジュールのmath.floor()を使用した例をご紹介します。

#input
import math

a = math.floor(10)
b = math.floor(-10)
c = math.floor(5.55)
d = math.floor(-5.55)

print("floor(10)={}".format(a))
print("floor(-10)={}".format(b))
print("floor(5.55)={}".format(c))
print("floor(-5.55)={}".format(d))
#output
floor(10)=10
floor(-10)=-10
floor(5.55)=5
floor(-5.55)=-6

端数処理

数値の端数処理には、いくつかの方法があります。

以下に1つずつご紹介します。

round()関数

round()関数は、整数や浮動小数点数に対して、指定した桁数で四捨五入する関数です。

#input
a = round(1.49)
b = round(1.50)
c = round(-2.49)
d = round(-2.50)

print("round(1.49)={}".format(a))
print("round(1.50)={}".format(b))
print("round(-2.49)={}".format(c))
print("round(-2.50)={}".format(d))
#output
round(1.49)=1
round(1.50)=2
round(-2.49)=-2
round(-2.50)=-2

ここで、round(1.50)=2に対して、round(-2.50)=-2となっています。

これは、round()関数が偶数丸め(銀行丸め)と呼ばれるもので処理しているためです。

1.50に最も近い整数は1.0と2.0ですが、偶数である2.0を選択します。

同様に、-2.50に最も近い整数は-2.0と-3.0ですが、偶数である-2.0を選択します。

round関数を任意の桁数で丸める場合、引数に桁数ndigitsを指定します。

ndigits=0や指定なしの場合には、整数で丸めます。

ndigitsを正の値で指定した場合、小数点以下がndigits桁になるように丸めます。

ndigitsを負の値で指定した場合、ndigitsの絶対値の桁で丸めます。

以下に例を載せます。

#input
a = round(123.456,2)
b = round(123.456,-2)
c = round(-123.456,2)
d = round(-123.456,-2)

print("round(123.456,2)={}".format(a))
print("round(123.456,-2)={}".format(b))
print("round(-123.456,2)={}".format(c))
print("round(-123.456,-2)={}".format(d))
#output
round(123.456,2)=123.46
round(123.456,-2)=100.0
round(-123.456,2)=-123.46
round(-123.456,-2)=-100.0

format()メソッド

format()メソッドに数値を指定することで、小数点以下を四捨五入することができます。

#input
x = 123.456

print("{:.0f}".format(x))
print("{:.1f}".format(x))
print("{:.2f}".format(x))
#output
123
123.5
123.46

{:.0f}で整数に丸め、{:.Nf}で小数点以下N桁に丸めています。

Decimal.quantizeメソッド

decimalモジュールquantize()メソッドを使用して、端数を処理することができます。

下例の通り、端数処理の方法(丸めモード)を好きに変えられます。

#input
#decimalモジュール内をまとめてインポート
from decimal import *

x = Decimal("1.5")
y = Decimal("-1.5")

#数値の切り捨て(負の無限大方向へ丸める)
a = x.quantize(Decimal("0"),rounding=ROUND_FLOOR)
b = y.quantize(Decimal("0"),rounding=ROUND_FLOOR)

#数値の切り上げ(正の無限大方向へ丸める)
c = x.quantize(Decimal("0"),rounding=ROUND_CEILING)
d = y.quantize(Decimal("0"),rounding=ROUND_CEILING)

#数値を原点方向へ丸める
e = x.quantize(Decimal("0"),rounding=ROUND_DOWN)
f = y.quantize(Decimal("0"),rounding=ROUND_DOWN)

#数値を原点から遠い方向へ丸める
g = x.quantize(Decimal("0"),rounding=ROUND_UP)
h = y.quantize(Decimal("0"),rounding=ROUND_UP)

print("a:",a,"b:",b)
print("c:",c,"d:",d)
print("e:",e,"f:",f)
print("g:",g,"h:",h)
#output
a: 1 b: -2
c: 2 d: -1
e: 1 f: -1
g: 2 h: -2

まとめ

この記事では、Python基礎となる算出演算子と端数処理について、ご説明しました。

本記事を参考に、ぜひ基礎を学んでみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました