Pythonを使った四捨五入の完全ガイド!5つの簡単なステップ

Pythonでの四捨五入の手順のイラストPython
この記事は約8分で読めます。

 

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

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

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

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

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

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

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

はじめに

四捨五入の処理は日常的に使われる計算手法の一つですが、その具体的な実装方法を知らずにいる方も多いかもしれません。

本記事では、Pythonというプログラミング言語を使って、四捨五入の処理を実装する具体的な手法を初心者向けに解説します。

この記事を読むことで、Pythonで四捨五入を行う各ステップを理解し、すぐにでも自身のコードに応用できるようになるでしょう。

●Pythonとは

Pythonは、シンプルで読みやすいコードを書くことができる、初心者にも親しまれているプログラミング言語です。

○Pythonの特徴

Pythonの特徴は、その簡潔な文法と豊富なライブラリ、そしてコミュニティによるサポートです。

Pythonは、初心者からベテランまで幅広い層に対応することができ、特にデータ分析や機械学習の分野で活用されています。

●四捨五入とは

四捨五入は、特定の位における数値を最も近い整数や小数に変換する計算手法のことを指します。

具体的には、四捨五入したい位の数値が5以上であれば、その一つ上の位の数値を1増やし、4以下であればそのままとする方法です。

●Pythonでの四捨五入の使い方

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

○round関数の基本

round関数は、最も基本的な四捨五入の処理を提供する組み込み関数です。

引数には対象の数値と、四捨五入する桁数を指定します。

桁数を指定しない場合は、最も近い整数に四捨五入します。

□サンプルコード1:整数への四捨五入

ここでは、round関数を使用して四捨五入を行う基本的な例を紹介します。

このコードでは、浮動小数点数7.6を四捨五入しています。

num = 7.6
rounded_num = round(num)
print(rounded_num)

上記のコードを実行すると、7.6は最も近い整数8に四捨五入されます。

その結果、8という出力結果が得られます。

□サンプルコード2:小数点第n位までの四捨五入

round関数では、四捨五入する位を指定することも可能です。

下記のコードでは、浮動小数点数7.646を小数点第2位まで四捨五入します。

num = 7.646
rounded_num = round(num, 2)
print(rounded_num)

このコードを実行すると、7.646は小数点第2位まで四捨五入され、7.65という結果が得られます。

●四捨五入の注意点と対処法

Pythonでの四捨五入にはいくつか注意すべき点があります。

それらについて具体的に説明していきます。

○数値がちょうど中間値の場合の挙動

Pythonのround関数では、数値がちょうど中間値の場合、つまり、四捨五入するときに数値がちょうど5になる場合、最も近い偶数に四捨五入されます。

これは「銀行家の丸め」や「偶数丸め」とも呼ばれる手法で、誤差を均一に分散させるために使用されます。

□サンプルコード3:中間値の四捨五入

下記のコードでは、2.53.5という中間値を四捨五入しています。

num1 = 2.5
num2 = 3.5
rounded_num1 = round(num1)
rounded_num2 = round(num2)
print(rounded_num1)
print(rounded_num2)

上記のコードを実行すると、2.5は最も近い偶数である2に、3.5は最も近い偶数である4に四捨五入されます。その結果、出力は24となります。

○大きな数値や小さな数値での四捨五入

Pythonでは、非常に大きな数値や非常に小さな数値を四捨五入する際には、浮動小数点数の精度により四捨五入の結果が期待通りにならないことがあります。

その場合は、decimalモジュールを用いるとより正確に四捨五入することができます。

□サンプルコード4:大きな数値の四捨五入

下記のコードでは、大きな数値123456789.987654321を小数点以下第2位まで四捨五入しています。

num = 123456789.987654321
rounded_num = round(num, 2)
print(rounded_num)

このコードを実行すると、123456789.987654321は小数点以下第2位まで四捨五入され、123456789.99という結果が得られます。

●四捨五入の応用例

四捨五入は、データ分析やグラフ作成など、さまざまな場面で応用することができます。

○データ分析における四捨五入

データ分析では、データの見やすさや扱いやすさのために四捨五入を使用することがあります。

特に、平均値や中央値などを求める際に四捨五入を使うことで、データの見栄えをよくしたり、分析結果の解釈を容易にします。

□サンプルコード5:データ分析における四捨五入

下記のコードでは、Pythonのデータ分析ライブラリpandasを用いて、四捨五入を使って平均値を求める例を表しています。

import pandas as pd

data = [1.234, 2.345, 3.456, 4.567]
df = pd.DataFrame(data, columns=['Value'])

mean_value = df['Value'].mean()
rounded_mean_value = round(mean_value, 2)

print(rounded_mean_value)

このコードを実行すると、1.234, 2.345, 3.456, 4.567というデータの平均値を求め、その結果を小数点第2位まで四捨五入します。

結果として、2.9という出力が得られます。

○グラフ作成における四捨五入

グラフを作成する際には、軸のラベルや注釈を見やすくするために四捨五入を用いることがあります。

特に、matplotlibなどのライブラリを使ってグラフを描く際には、四捨五入を用いて数値を整形することが一般的です。

□サンプルコード6:グラフ作成での四捨五入

下記のコードでは、matplotlibライブラリを使って、四捨五入を用いてグラフの軸ラベルを整形する例を表しています。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)

plt.plot(x, y)
plt.xticks(np.arange(0, 2 * np.pi, np.pi / 2), [round(i, 2) for i in np.arange(0, 2 * np.pi, np.pi / 2)])
plt.show()

このコードを実行すると、0からまでの範囲をπ/2ごとに区切り、それぞれの数値を小数点第2位まで四捨五入した値を軸ラベルとして表示するサイン波のグラフが生成されます。

●四捨五入のカスタマイズ方法

Pythonでは、標準のround関数以外にも、decimalモジュールやnumpyモジュールを使って四捨五入をカスタマイズすることができます。

○Decimalモジュールを用いた四捨五入

decimalモジュールを用いると、Pythonの標準のround関数よりも高精度な四捨五入を行うことができます。

これは特に大きな数値や小さな数値を扱う際に有用です。

□サンプルコード7:Decimalモジュールを使った四捨五入

下記のコードでは、decimalモジュールを使って、高精度な四捨五入を行う例を表しています。

from decimal import Decimal, ROUND_HALF_UP

num = Decimal('7.5')
rounded_num = num.quantize(Decimal('0'), rounding=ROUND_HALF_UP)

print(rounded_num)

このコードを実行すると、7.5は四捨五入されて8となります。

この結果は、Pythonの標準のround関数を使用した場合とは異なり、中間値でも上に丸める四捨五入が適用されています。

○numpyモジュールを用いた四捨五入

numpyモジュールでは、配列全体を効率的に四捨五入することができます。

また、numpyround関数では中間値を常に最も近い偶数に四捨五入する点も特徴的です。

□サンプルコード8:numpyを使った四捨五入

下記のコードでは、numpyモジュールを使って、配列全体を四捨五入する例を表しています。

import numpy as np

data = np.array([1.23, 2.45, 3.67, 4.89])
rounded_data = np.round(data)

print(rounded_data)

このコードを実行すると、1.23, 2.45, 3.67, 4.89という数値からなる配列全体が四捨五入され、結果として[1., 2., 4., 5.]という配列が出力されます。

まとめ

Pythonを使った四捨五入の手順について詳しく解説しました。

この記事を通じて、Pythonで四捨五入を行う各ステップを理解し、すぐにでも自身のコードに応用できることを目指しました。

Pythonのround関数を使えば、整数への四捨五入や小数点第n位までの四捨五入が可能です。

また、decimalモジュールやnumpyモジュールを使えば、さらに高度な四捨五入のカスタマイズが可能になります。

ただし、Pythonにおける四捨五入にはいくつかの注意点があります。

特に、数値がちょうど中間値の場合や、非常に大きな数値や小さな数値を四捨五入する場合には注意が必要です。

四捨五入は、データ分析やグラフ作成など、さまざまな場面で活用できます。

Pythonの機能を活かして、効率的かつ正確に四捨五入を行うことができます。

これらの情報が、Pythonにおける四捨五入の理解と実装に役立つことを願っています。