初心者必見!Pythonのround関数を完全理解するための7ステップ

Pythonのround関数について説明するイラストPython

 

【当サイトはコードのコピペ・商用利用OKです】

このサービスはASPや、個別のマーチャント(企業)による協力の下、運営されています。

記事内のコードは基本的に動きますが、稀に動かないことや、読者のミスで動かない時がありますので、お問い合わせいただければ個別に対応いたします。

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

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

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

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10000時間以上』を満たすプログラマ集団によって監修されています。

はじめに

皆さん、こんにちは。

今日はPythonプログラミング言語の便利な組み込み関数であるround関数について詳しく学んでいきましょう。

初心者の方でも理解できるように、丁寧に説明していきます。

round関数の基本的な使い方から、応用例、注意点、カスタマイズ方法まで、この記事でPythonのround関数を完全に理解し、活用できるようになるでしょう。

●Pythonとは

Pythonはシンプルで読みやすい文法が特徴の一般目的のプログラミング言語です。

初学者から上級者まで、幅広い層に利用されており、Web開発、データ分析、機械学習など多岐にわたる領域で活用されています。

●round関数とは

Pythonのround関数は、与えられた数値を最も近い整数に丸める関数です。

例えば、round(3.6)と記述すると、結果は4になります。

また、round関数は第二引数を取ることも可能で、こちらは小数点以下の桁数を指定します。

例えば、round(3.1415, 2)と記述すると、結果は3.14になります。

●round関数の基本的な使い方

では、ここでサンプルコードを交えてround関数の基本的な使い方について説明します。

○サンプルコード1:基本的なround関数の使い方

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

このコードでは、浮動小数点数の変数numに3.1415を代入し、round関数を使って小数点以下2桁に丸めています。

その結果をrounded_numに格納し、print関数で出力します。

この例では、3.1415を小数点以下2桁に丸めて、3.14と出力しています。

実行結果:

3.14

●round関数の応用例

round関数は単独で使うだけでなく、データ構造に対しても使うことができます。

ここではリスト、辞書、そしてpandasのDataFrameの各要素に対してround関数を適用する方法を表します。

○サンプルコード2:リスト内の数値を丸める

nums = [3.1415, 2.7182, 1.4142]
rounded_nums = [round(num, 2) for num in nums]
print(rounded_nums)

このコードでは、リスト内包表記を用いて、リストnumsの各要素に対してround関数を適用しています。

この例では、3.1415、2.7182、1.4142の各要素を小数点以下2桁に丸め、新たなリストrounded_numsに格納しています。

その結果をprint関数で出力します。

実行結果:

[3.14, 2.72, 1.41]

○サンプルコード3:辞書内の数値を丸める

dict_nums = {'pi': 3.1415, 'e': 2.7182, 'sqrt2': 1.4142}
rounded_dict_nums = {k: round(v, 2) for k, v in dict_nums.items()}
print(rounded_dict_nums)

このコードでは、辞書内包表記を使って、辞書dict_numsの各値に対してround関数を適用しています。

この例では、’pi’: 3.1415, ‘e’: 2.7182, ‘sqrt2’: 1.4142の各値を小数点以下2桁に丸め、新たな辞書rounded_dict_numsに格納しています。

その結果をprint関数で出力します。

実行結果:

{'pi': 3.14, 'e': 2.72, 'sqrt2': 1.41}

○サンプルコード4:DataFrame内の数値を丸める

import pandas as pd

df = pd.DataFrame({
    'nums': [3.1415, 2.7182, 1.4142]
})
df = df['nums'].round(2)
print(df)

このコードでは、pandasライブラリを使ってDataFrameを作成し、その列’nums’に対してround関数を適用しています。

この例では、3.1415、2.7182、1.4142の各値を小数点以下2桁に丸め、同じDataFrameに上書きしています。

その結果をprint関数で出力します。

実行結果:

0    3.14
1    2.72
2    1.41
Name: nums, dtype: float64

●round関数の注意点と対処法

round関数は非常に便利な関数ですが、注意点もあります。

それは、丸め方のルールです。

Pythonのround関数は、”四捨五入”ではなく、”偶数への丸め”(round half to even)を使用します。

これは、半分の値(0.5など)を丸めるときに、最も近い偶数の方向に丸める方法です。

例えば、round(0.5)とすると、結果は0になります。一方、round(1.5)とすると、結果は2になりま

この挙動に注意が必要です。

さらに、浮動小数点数の誤差にも注意が必要です。

浮動小数点数は、コンピュータで数値を表現する際に生じる誤差を含んでいることがあります。

このため、round関数を適用しても期待通りの結果にならない場合があります。

これらの問題を避けるためには、丸める前に少し小さな値を加えると良いでしょう。

例えば、round(num+0.00001, 2)のようにします。

これにより、ほとんどの場合で期待通りの丸め結果を得ることができます。

●round関数のカスタマイズ方法

round関数の機能はシンプルですが、自分自身でカスタマイズすることも可能です。

ここでは、精度を制御するカスタマイズ方法を示します。

○サンプルコード5:精度を制御するカスタマイズ

def custom_round(num, digit=0):
    p = 10 ** digit
    return (num * p * 2 + 1) // 2 / p

num = 3.1415
rounded_num = custom_round(num, 2)
print(rounded_num)

このコードでは、自作のcustom_round関数を定義しています。

この関数は数値と桁数を引数に取り、指定した桁数で四捨五入します。

具体的には、(num * p * 2 + 1) // 2 / pという計算により四捨五入を実現しています。

この例では、3.1415を小数点以下2桁に丸めて、3.14と出力しています。

実行結果:

3.14

まとめ

以上、Pythonのround関数の完全なガイドを提供しました。

基本的な使い方から応用例、注意点、カスタマイズ方法まで、詳しく解説しました。

Pythonのround関数は非常に便利な関数で、プログラミングにおける数値の丸め処理に広く使われています。

ただし、丸め方のルールや浮動小数点数の誤差には注意が必要です。

この記事が皆さんのPythonプログラミングの一助となることを願っています。