自分の市場価値を知りたい人にオススメの記事です


副業を考えているエンジニアにオススメの記事です


私がオススメするプログラミング教材です

無料で学べるPython講座です

【Python入門】四捨五入しよう

更新日:

記事の内容


この記事では、Pythonで四捨五入を扱う方法を紹介します。
なお、このコードはPythonの3系で書かれています。

round関数の使い方

round関数は、以下のように使います。

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

第一引数のみを指定した場合は整数に、四捨五入されます。
第二引数には、小数点何桁まで丸めるかを指定します。

10.5の四捨五入は上手くいっていません。。。
その理由は次に説明します。

round関数を使うさいの注意

四捨五入ではなく偶数への丸め

round関数の丸めは、一般的な四捨五入ではなく、偶数への丸めになります。
端数が0.5より小さいならば切り捨てます。
端数が0.5より大きいならば切り上げます。
端数がちょうど0.5なら、切り捨てと切り上げのうち結果が偶数となる方へ丸めます。

これをコードで見ていきましょう。
結果が全て、「0」「2」 「4」「6」といった偶数になっていることがわかります。




小数点以下2桁以降の処理では、偶数への丸めも上手くいかない

小数点以下2桁以降の処理では、偶数への丸めも上手くいかない時もあります。
理由は、小数を浮動小数点数で正確に表せないからです。

Decimalを使うと問題が解決します

上記の2つの問題は、Decimalを使うと解決します。

Decimal型のオブジェクトからquantize()を呼び出します。
quantize()の第一引数に、求めたい桁数と同じ桁数の数値を入力します。
そして、引数roundingに丸めモードを指定します。
ROUND_HALF_UPを指定すると一般的な四捨五入になります。

 まとめ

この記事では、Pythonで四捨五入を扱う方法を紹介しました。
業務で正確に四捨五入をしたい場合は、Decimalを使うようにしましょう。

Good luck with your engineer life!

小数点の切り上げと切り捨てが気になる人は、この記事を読んで下さい。

Pythonエンジニアの求人

DODA

Pythonエンジニアは、約3500件の案件が登録されていました。

Pythonを使って働きたい人は、DODAに相談してみて下さい



Pythonをより詳しく勉強したい人には、この記事がオススメです


Djangoをより詳しく勉強したい人には、この記事がオススメです


Flaskをより詳しく勉強したい人には、この記事がオススメです


機械学習をより詳しく勉強したい人には、この記事がオススメです


MLOpsをより詳しく勉強したい人には、この記事がオススメです


統計学をより詳しく勉強したい人には、この記事がオススメです


数学をより詳しく勉強したい人には、この記事がオススメです


Rをより詳しく勉強したい人には、この記事がオススメです


Juliaをより詳しく勉強したい人には、この記事がオススメです

関連コンテンツ

-Python, プログラミング

Copyright© プログラミング道場 , 2023 All Rights Reserved Powered by AFFINGER4.