Pythonで四捨五入する方法 - round関数とdecimalモジュールを使った方法

プログラミング 公開日:
ブックマーク
Pythonで四捨五入する方法 - round関数とdecimalモジュールを使った方法
実践的なコードを書いていると、意外と四捨五入をする必要があるケースが発生します。本記事では、Pythonで数値を四捨五入するための方法について、round関数とdecimalモジュールを使って、初心者向けに解説します。

はじめに

実践的なコードを書いていると、意外と四捨五入をする必要があるケースが発生します。

本記事では、Pythonで数値を四捨五入するための方法について、round関数とdecimalモジュールを使って、初心者向けに解説します。

基本的な四捨五入

Pythonで四捨五入を行う最も基本的な方法は、組み込み関数のround()を使用することです。

この関数は、数値を指定された小数点以下の桁数に四捨五入します。

round(数値, 桁数)
  • 数値: 四捨五入したい数値を指定します。
  • 桁数: 四捨五入後の小数点以下の桁数を指定します。省略した場合は整数に丸められます。

基本的な使い方は以下の通りです。

num = 3.14159

# 桁数を指定しない
rounded_num = round(num)
print(rounded_num)  # 出力:3

# 小数点以下1桁に四捨五入
rounded_num = round(num, 1)
print(rounded_num)  # 出力:3.1

# 小数点以下2桁に四捨五入
rounded_num = round(num, 2)
print(rounded_num)  # 出力:3.14

負の桁数を指定して四捨五入

round()関数では、負の桁数を指定することで整数部分を四捨五入することもできます。

これにより、特定の桁で切り捨てることが可能です。

num = 357

# -1を指定すると、十の位で四捨五入
rounded_num = round(num, -1)
print(rounded_num)  # 出力:360

# -2を指定すると、百の位で四捨五入
rounded_num = round(num, -2)
print(rounded_num)  # 出力:400

round関数の注意点

通常、四捨五入のルールは「5以上なら切り上げ、4以下なら切り捨て」とされています。

round()関数もほぼこのルールに従って四捨五入が行われますが、偶数丸めによって処理を行います。
(対象の値がちょうど5となる場合は、結果が偶数となるように丸められます)

具体例を見てましょう。

print(round(0.5))
print(round(1.5))
print(round(2.5))
print(round(3.5))
print(round(4.5))
print(round(5.5))

実行結果はこのようになります。

0
2
2
4
4
6

decimalモジュールを使った四捨五入

round()関数は非常に簡単に使えますが、浮動小数点数の精度に起因する誤差が発生する可能性があります。

より正確な四捨五入を行う必要がある場合は、decimalモジュールを使用します。

decimalモジュールを使うことで10進演算を正確に行うことが可能になり、より正確な四捨五入を行うことができます。

では早速具体例を見てみましょう。

from decimal import Decimal, ROUND_HALF_UP

# Decimalオブジェクトの作成
num = Decimal('3.141592')

# ROUND_HALF_UPで通常の四捨五入
rounded_num = num.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP) 
print(rounded_num)  # 出力: 3.14
  • quantize()メソッド:指定した桁数で四捨五入を行う
  • roundingパラメータ:丸め方を指定できます。ROUND_HALF_UPは通常の四捨五入、つまり5以上は切り上げる。

最後に

いかがでしたでしょうか?

冒頭にも記載した通り、四捨五入を行う機会は意外に多いです。
ぜひこの記事を参考にして、Pythonにおける四捨五入の方法をマスターしていきましょう。

TECH PLAYでは、ITに関わる様々なイベント・勉強会・講演会・交流会・カンファレンス・セミナーなどの情報を集約し掲載しています。

テクノロジーと共に成長しよう、
活躍しよう。

TECH PLAYに登録すると、
スキルアップやキャリアアップのための
情報がもっと簡単に見つけられます。

面白そうなイベントを見つけたら
積極的に参加してみましょう。
ログインはこちら

タグからイベントをさがす