Pythonでround関数による四捨五入の方法を解説!

Pythonでは指定した桁数で四捨五入するためのround関数が用意されています。

浮動小数点数を整数に丸めたい
浮動小数点数を桁数を指定して丸めたい

そこで、ここでは指定した桁数で丸めるためのround関数について、以下の内容で解説していきます。

  • 【基礎】round関数とは
  • 【基礎】round関数の使い方
  • 【発展】小数点の桁数を指定する方法
  • 【発展】整数の桁数を指定する方法
  • 【発展】round関数の注意点

round関数の使い方についてわかりやすくまとめていますのでぜひ参考にしてください!

round関数とは

round関数は、Pythonで標準で用意されている組み込み関数です。主に浮動小数点数を四捨五入したいときに使われます。round関数の書き方:

round(数値)
round(数値, 桁数)

第一引数のみ指定した場合は整数に四捨五入されます。第二引数には小数点何桁まで丸めるかを指定します。第二引数を指定した場合はfloat型が返されます。それでは次項より具体的な使い方を見ていきましょう。

round関数の使い方

round関数で簡単に小数点以下を丸めて整数として取得したい場合、先述したようにround関数の第一引数に丸めたい値を指定すればOKです。以下のプログラムをご覧ください。

f = 123.4567

print(round(f))

実行結果:

123

このように小数点以下が丸められることがわかりますね!

小数点の桁数を指定する方法

桁数を指定する場合は第二引数に丸めたい桁数を指定すればOKです。以下のプログラムをご覧ください。

f = 123.4567

print(round(f, 1))

print(round(f, 2))

print(round(f, 3))

print(round(f, 0))

print(round(f, -1))

print(round(f, -2))

実行結果:

123.5
123.46
123.457
123.0
120.0
100.0

第二引数に整数を指定すると、指定した桁数で小数点が丸められることがわかりますね。0を指定した場合は整数に丸められずにfloat型を返します。引数に負の数を指定した場合、-1では10の位が丸められ、-2では100の位が丸められます。

整数の桁数を指定する方法

round関数は第二引数を指定すると整数の桁数を丸めることもできます。以下のプログラムをご覧ください。

n = 1234567

print(round(n))

print(round(n, 1))

print(round(n, 2))

print(round(n, 0))

print(round(n, -1))

print(round(n, -2))

print(round(n, -3))

実行結果:

1234567
1234567
1234567
1234567
1234570
1234600
1235000

round関数で整数を指定した場合、引数を指定しない場合や正の数を指定した場合、0を指定した場合は元の値が返されます。第二引数に負の数を指定した場合は小数点を指定した場合同様、-1では10の位が丸められ、-2では100の位が丸められます。

round関数の注意点

浮動小数点数や整数を指定した桁数で丸めるときに便利なround関数ですが、注意点もあります。

公式ドキュメントには以下のように書かれています。

注釈 浮動小数点数に対する round() の振る舞いは意外なものかもしれません: 例えば、 round(2.675, 2) は予想通りの 2.68 ではなく 2.67 を与えます。これはバグではありません: これはほとんどの小数が浮動小数点数で正確に表せないことの結果です。

f = 2.675

print(round(f, 2))

実行結果:

2.67

つまり、浮動小数点数は基数を2とする分数で表現されているため、最後の桁数が5の場合は正確に繰り上げがされませんので注意しましょう。

浮動小数点演算、その問題と制限

まとめ

ここでは、指定した桁数で整数、浮動小数点数を丸められるround関数について解説しました。

  • round関数とは
  • round関数の使い方
  • 小数点の桁数を指定する方法
  • 整数の桁数を指定する方法
  • round関数の注意点

round関数は整数や小数点をまるめるのに非常に便利ですので使い方についてはしっかりと理解しておきましょう。もし、round関数について忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。