Pythonで切り捨て・切り上げを使いこなす!7つの基本テクニック

Pythonの切り捨て・切り上げのコーディング方法を理解するPython
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonは一部の数学的な計算で非常に便利な言語であり、その中でも切り捨てや切り上げの処理は頻繁に使用されます。

本記事ではPythonを使って、切り捨てや切り上げを適切に使用するための基本的なテクニックを7つ紹介します。

●Pythonとは

Pythonは、初心者から上級者まで幅広いユーザーに使われる汎用プログラミング言語です。

○Pythonの特徴

Pythonの特徴としては、コードがシンプルで可読性が高い、標準ライブラリが充実している、オブジェクト指向や手続き型、関数型など多様なプログラミングスタイルに対応している、などが挙げられます。

●Pythonでの切り捨て処理について

切り捨てとは、与えられた数値をその下の最も近い整数に変換する処理を指します。

○Pythonの切り捨て関数(floor)

Pythonではmathモジュールのfloor関数を使用して切り捨てを行います。

floor関数は浮動小数点数を引数とし、その数以下の最大の整数を返します。

□サンプルコード1:基本的な切り捨ての使い方

import math

num = 3.7
result = math.floor(num)

print(result)  # 出力結果: 3

このコードではmathモジュールを使って切り捨てを行うコードを紹介しています。

この例では3.7をmath.floor関数に入れて3という結果を得ています。

□サンプルコード2:負の数での切り捨て

import math

num = -3.7
result = math.floor(num)

print(result)  # 出力結果: -4

負の数の切り捨てでは、値が小さい方の整数になるように切り捨てられます。

上記の例では、-3.7を切り捨てると-4となります。

●Pythonでの切り上げ処理について

切り上げとは、与えられた数値をその上の最も近い整数に変換する処理を指します。

○Pythonの切り上げ関数(ceil)

Pythonではmathモジュールのceil関数を使用して切り上げを行います。

ceil関数は浮動小数点数を引数とし、その数以上の最小の整数を返します。

□サンプルコード3:基本的な切り上げの使い方

import math

num = 3.2
result = math.ceil(num)

print(result)  # 出力結果: 4

このコードではmathモジュールを使って切り上げを行うコードを紹介しています。

この例では3.2をmath.ceil関数に入れて4という結果を得ています。

□サンプルコード4:負の数での切り上げ

import math

num = -3.2
result = math.ceil(num)

print(result)  # 出力結果: -3

負の数の切り上げでは、値が大きい方の整数になるように切り上げられます。

上記の例では、-3.2を切り上げると-3となります。

●Pythonでの四捨五入処理について

四捨五入とは、与えられた数値を最も近い整数に変換する処理を指します。

○Pythonの四捨五入関数(round)

Pythonでは組み込み関数のroundを使用して四捨五入を行います。

round関数は浮動小数点数を引数とし、その数値を四捨五入した結果を返します。

□サンプルコード5:基本的な四捨五入の使い方

num = 3.5
result = round(num)

print(result)  # 出力結果: 4

このコードではround関数を使って四捨五入を行うコードを紹介しています。

この例では3.5をround関数に入れて4という結果を得ています。

□サンプルコード6:桁数指定での四捨五入

num = 3.456
result = round(num, 2)

print(result)  # 出力結果: 3.46

round関数の第二引数には四捨五入の精度を指定できます。

上記の例では、3.456を小数点以下2桁で四捨五入し、結果として3.46を得ています。

●切り捨て、切り上げ、四捨五入の使いどころ

これらの操作は、金額計算や時間計算など、整数に変換する必要がある場面で役立ちます。

○サンプルコード7:切り捨てと切り上げの応用例

import math

price = 2980
num_people = 3
low_price = math.floor(price / num_people)
high_price = math.ceil(price / num_people)

print(low_price)  # 出力結果: 993
print(high_price) # 出力結果: 994

このコードでは、合計2980円の料金を3人で分ける場合の1人当たりの料金を計算しています。

math.floorを使って切り捨てを行うと993円、math.ceilを使って切り上げを行うと994円となります。

これにより、実際の金額分配時に丸めの影響を明確に理解することができます。

●注意点と対処法

Pythonで切り捨て、切り上げ、四捨五入を行う際の注意点として、浮動小数点数の扱いがあります。

浮動小数点数は二進数で表現されるため、十進数で完全に表現できない数値(例えば、0.1など)を扱うと微小な誤差が生じることがあります。

num = 0.1 * 3
result = round(num)

print(result)  # 出力結果: 0

上記の例では、0.1を3倍した結果を四捨五入すると0となります。

これは、0.1 * 3が厳密には0.3ではなく、それよりも微妙に小さい値となるためです。

このような誤差を避けるためには、Decimalモジュールを使用して厳密な十進数の計算を行うとよいです。

まとめ

Pythonを使用すると、切り捨て、切り上げ、四捨五入といった数学的な処理を簡単に行うことができます。

しかし、浮動小数点数の扱いには注意が必要であり、必要に応じてDecimalモジュールを利用すると良いでしょう。

Pythonをより深く理解し、上手に使いこなすためには、これらの基本的な数学関数の動作を理解しておくことが大切です。