Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで浮動小数点数を四捨五入する方法:round()関数の使い方を解説

Pythonでは、組み込み関数のround()を使うことで、浮動小数点数を任意の桁位置で四捨五入できます。第2引数に桁数を指定すると、その位置で数値が丸められます。以下に具体的な使用例を示します。

round()関数の基本的な使い方

>>> round(11.6912, 2)   # 小数第2位まで丸める
11.69
>>> round(11.6912, 1)   # 小数第1位まで丸める
11.7
>>> round(11.6912)      # 最も近い整数に丸める
12
>>> round(11.6912, -1)  # 10の位に丸める
10.0

引数の指定方法と挙動

  • 第2引数が正の数の場合:小数点以下の指定した桁で丸められます(例:2なら小数第2位)。
  • 第2引数を省略した場合:最も近い整数に丸められます。
  • 第2引数が負の数の場合:整数部分の位で丸められます(例:-1なら10の位、-2なら100の位)。

注意点:Pythonの丸めは「偶数への丸め」

Pythonのround()関数は、一般的な「四捨五入」とは少し異なり、偶数への丸め(バンカーズ・ラウンディング)という方式を採用しています。例えば、0.5は0に、2.5は2に丸められます。これは浮動小数点数の誤差を考慮した設計によるものです。

厳密な四捨五入(0.5以上を切り上げる処理)が必要な場合は、標準ライブラリのdecimalモジュールを利用するのがおすすめです。

>>> from decimal import Decimal, ROUND_HALF_UP
>>> Decimal('2.5').quantize(Decimal('0'), rounding=ROUND_HALF_UP)
Decimal('3')

このように、用途に応じてround()関数とdecimalモジュールを使い分けることで、意図した通りの丸め処理を実現できます。

  1. Pythonの正規表現でテキストから浮動小数点数を抽出する方法

    Pythonでは、標準ライブラリの re モジュールを使うことで、正規表現によるパターンマッチングでテキスト中の浮動小数点数を簡単に抽出できます。re.findall() を利用すれば、文字列内に含まれるすべての数値(整数・小数・負の値)をリストとして一括取得できるのが便利です。 サンプルコード import re s = Sound Level: -11.7 db or 15.2 or 8 db result = re.findall(r[-+]?\d*\.\d+|\d+, s) print(result) 実行結果 [-11.7, 15.2, 8] 正規表現パターンの解説 使用しているパ

  2. Pythonで浮動小数点数を固定幅にフォーマットする方法を解説

    文字列フォーマットで固定幅を指定する Pythonでは、文字列フォーマット機能を使うことで、浮動小数点数(float型)を任意の固定幅に整形して表示できます。たとえば、小数点の位置を揃えるために「全体の幅を12文字」「小数点以下を4桁」に指定したい場合は、format()メソッドを次のように使います。 >>> x = 12.35874 >>> print({:12.4f}.format(x)) 12.3587 書式指定 {:12.4f} のうち、「12」が出力全体の幅(文字数)、「.4f」が小数点以下4桁の浮動小数点数であることを意味します。デフォ