Pythonで数値を四捨五入する方法とは?round()関数の使い方を徹底解説
Pythonには、数値を丸めるための組み込み関数round()が標準で用意されています。この関数を使えば、特別なライブラリをインポートすることなく、簡単に数値の四捨五入処理を行うことができます。
round()関数の基本構文
Pythonのround()関数は、最大2つの引数を受け取ります。
第1引数:丸め(四捨五入)の対象となる数値
第2引数:小数点以下何桁まで丸めるかを指定する値(省略可能)
第2引数を省略した場合のround()関数の動作
第2引数を指定しない場合、round()関数は小数点以下の値を確認し、floor()(切り下げ)またはceil()(切り上げ)のいずれかを適用して整数値を返します。
小数点以下の数字が5未満の場合 → 渡された数値のfloor()(切り下げ)を返します。
小数点以下の数字が5より大きい場合 → 渡された数値のceil()(切り上げ)を返します。
整数が渡された場合 → そのまま同じ整数を返します。
この場合の出力は、必ず整数値になります。具体的なコード例で確認してみましょう。
コード例
print(round(15)) print(round(15.2)) print(round(15.8)) print(round(15.128)) print(round(15.89))
実行結果
15 15 16 15 16
実行結果の解説
各print文の出力結果について、順番に見ていきましょう。
round(15):整数15が渡されたため、そのまま同じ整数が返され、出力は「15」になります。
round(15.2):小数点以下が5未満のため、15.2の切り下げ(floor)が適用され、出力は「15」になります。
round(15.8):小数点以下が5より大きいため、15.8の切り上げ(ceil)が適用され、出力は「16」になります。
round(15.128):小数部分が5未満と判断されるため、切り下げ(floor)が適用され、出力は「15」になります。
round(15.89):小数部分が5より大きいと判断されるため、切り上げ(ceil)が適用され、出力は「16」になります。
ポイント: 第2引数を省略した場合、すべての出力は整数値になります。
第2引数を指定した場合のround()関数の動作
第2引数を指定すると、小数点以下を指定した桁数まで丸めることができます。この場合のround()関数の動作は、数学で行う通常の四捨五入の計算とほぼ同じです。
整数値が渡された場合はそのまま同じ整数値が返され、小数を含む数値の場合は、指定された桁数に丸められた浮動小数点数が返されます。
コード例
print(round(15,2)) print(round(15.2789,3)) print(round(15.82,1)) print(round(15.128,2)) print(round(15.8902,2))
実行結果
15 15.279 15.8 15.13 15.89
実行結果の解説
round(15.2789, 3):小数点以下4桁目が5より大きいため、3桁目(指定された最後の桁)が1つ繰り上がります。結果として「15.279」が出力されます。
round(15.82, 1):小数点以下2桁目が5未満のため、1桁目は繰り上がりません。結果として「15.8」が出力されます。
補足:Pythonの丸め動作における注意点
Python 3のround()関数は、厳密には一般的な「四捨五入」とは異なる「銀行家の丸め(偶数への丸め)」という方式を採用しています。例えば、round(0.5)は「0」、round(2.5)は「2」のように、中間値(.5ちょうど)の場合は最も近い偶数側に丸められます。
また、浮動小数点数はコンピュータ内部で2進数として表現されるため、round(2.675, 2)が「2.68」ではなく「2.67」になるなど、直感と異なる結果になるケースがあります。金額計算など厳密な丸めが必要な場面では、標準ライブラリのdecimalモジュールを使用することをおすすめします。
-
Pythonで与えられた数値がフィボナッチ数かどうかを判定する方法
本記事では、与えられた数値がフィボナッチ数であるかどうかを判定する問題の解決策について解説します。 問題の定義 ある数値 n が与えられたとき、その数値がフィボナッチ数であるかどうかを判定します。 第 n 項のフィボナッチ数は、直前の2つのフィボナッチ数の和として定義されることは広く知られています。しかし、フィボナッチ数列には漸化式以外にも興味深い数学的性質があります。 フィボナッチ数の判定条件 ある数値 n がフィボナッチ数であるのは、「5×n² + 4」または「5×n² − 4」のいずれかが完全平方数であるとき、かつそのときに限る この性質を利用すれば、フィボナッチ数列を実際に生成しなくて
-
Pythonで日付の妥当性を検証する方法!strptimeの使い方と書式指定子一覧
Pythonで日付の妥当性検証(バリデーション)を行う方法は、扱う日付データの形式によって大きく異なります。最も一般的なのは、datetimeモジュールが提供するstrptime()関数を使って、文字列を日付・時刻オブジェクトに変換する方法です。この関数は指定した書式に一致しない文字列を受け取ると例外を発生させるため、それを利用して日付が正しいかどうかを判定できます。strptime()を使った基本的な日付検証以下は、文字列が「YYYY-MM-DD」形式の有効な日付であるかを確認するサンプルコードです。import datetimedate_string = 2017-12-31date_fo