\

Pythonで数値を四捨五入する方法は主に2つあります。一つは組み込み関数のroundを使用する方法、もう一つはdecimalモジュールのquantizeを使用する方法です。

roundを使用する方法

round関数はPythonの組み込み関数で、以下のように使用します。

round(100.567)  # 結果: 101
round(100.567, 1) # 結果: 100.6
round(100.567, 2)  # 結果: 100.57

第2パラメータが丸める桁数です。round(100.567, 1)とすると、小数2桁が四捨五入され、小数1桁となります。第2パラメータを省略すると、整数となります。

ただし、round関数は偶数丸めなので、例えば0.5を整数に丸めようとしてround(0.5)としても1にはならず0となってしまいます。そのため、一般的な四捨五入としては使えません。

quantizeを使用する方法

quantize関数はdecimalモジュールの関数で、以下のように使用します。

from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN

# 整数で丸め
Decimal(str(100.567)).quantize(Decimal('0'), rounding=ROUND_HALF_UP) # 結果: 101

# 小数第1位
Decimal(str(100.567)).quantize(Decimal('0.1'), rounding=ROUND_HALF_UP) # 結果: 100.6

# 小数第2位
Decimal(str(100.567)).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)  # 結果: 100.57

Decimalquantizeを使えば一般的な四捨五入が可能です。Decimal(str(数値))のように、数値をstrでstr型に変換します。str型にしないとDecimalとして扱えません。

以上、Pythonで四捨五入を行う方法について解説しました。round関数とquantize関数、それぞれの特性を理解し、適切な関数を選んで使用しましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です