Python|小数や整数の四捨五入:round()

1. はじめに

Pythonで数値を扱う際に「小数や整数の四捨五入」を行いたい場面は多々あります。たとえば、価格の端数処理、平均値の表示、小数点の桁数制御など、日常的なプログラミングでも頻出する処理です。
この記事では、round() 関数を使って Pythonで四捨五入 を行う方法を、初心者にもわかりやすく丁寧に解説します。

実務での利用シーンや注意点もあわせて紹介しますので、Python学習者はもちろん、実務で活用したい方にもおすすめの内容です。

 

2. Pythonの round() 関数とは?

round() の基本構文

Pythonの round() 関数は、数値を四捨五入するための組み込み関数です。基本的な構文は以下の通りです。

round(number[, ndigits])
  • number:四捨五入したい数値(int または float)
  • ndigits:小数点以下の桁数(省略可能、デフォルトは0)

基本的な使い方

まずは基本の使い方を確認しましょう。

# 小数を四捨五入
print(round(3.14159))  # 小数点以下省略 → 3
print(round(3.6))      # → 4

# 小数第2位まで残す
print(round(3.14159, 2))  # → 3.14

実行結果:

3
4
3.14

 

3. よくある使い方・応用例

金額やパーセンテージの表示に使う

四捨五入は実務でよく使われます。たとえば、金額の端数処理やパーセンテージの整形に便利です。

# 金額計算
price = 1980.789
rounded_price = round(price)  # → 1981円に四捨五入

# パーセンテージ計算
score = 83.456
percentage = round(score, 1)  # → 83.5%

実行結果:

1981
83.5

リスト内の数値を一括で四捨五入

複数の数値を一括で四捨五入する場合は、リスト内包表記と組み合わせて使うのが便利です。

# 小数を含むリスト
data = [3.1415, 2.7182, 1.6180]

# 小数第2位まで丸める
rounded_data = [round(num, 2) for num in data]
print(rounded_data)

実行結果:

[3.14, 2.72, 1.62]

統計データの丸め処理に活用

データ分析でも、平均値などを見やすくするために四捨五入を使うことがあります。

# 平均値の計算と丸め
scores = [80, 82, 85, 88, 90]
avg = sum(scores) / len(scores)
rounded_avg = round(avg, 1)
print(f"平均点:{rounded_avg}")

実行結果:

平均点:85.0

 

4. 注意点・エラー対策

round() は「銀行丸め」に注意

Pythonの round() 関数は、偶数丸め(銀行丸め) というルールに従っています。これは「5のときに偶数へ丸める」という方式で、一般的な「常に切り上げる」丸めとは異なります。

print(round(2.5))  # → 2(偶数へ丸め)
print(round(3.5))  # → 4(偶数へ丸め)

実行結果:

2
4

この仕様に注意し、「常に切り上げ・切り捨て」をしたい場合は math.ceil()math.floor() を使用する方が適切です。

浮動小数点の誤差に注意

round() を使っても、小数点の誤差が出る場合があります。これはコンピュータ上の仕様であり、Pythonに限ったことではありません。

print(round(2.675, 2))  # 本来は 2.68 になりそうだが…

実行結果:

2.67

このような誤差を厳密に避けたい場合は、decimal モジュールの利用を検討してください。

 

5. まとめ

本記事では、Pythonの round() 関数を使った小数や整数の四捨五入の方法について、基礎から応用まで解説しました。

  • round() は整数・小数の丸め処理に使える
  • 小数点以下の桁数を指定することで柔軟に制御できる
  • 「銀行丸め」に注意しよう

実務でも「金額表示」や「統計処理」など多くの場面で活躍する関数です。Pythonの基礎力として、しっかり身につけておきましょう。

💡学習のコツ: 四捨五入の処理は、目的によって round()math.floor(), math.ceil() を使い分けるのがポイントです!

タイトルとURLをコピーしました