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モジュールを使い分けることで、意図した通りの丸め処理を実現できます。
-
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] 正規表現パターンの解説 使用しているパ
-
Pythonで浮動小数点数を固定幅にフォーマットする方法を解説
文字列フォーマットで固定幅を指定する Pythonでは、文字列フォーマット機能を使うことで、浮動小数点数(float型)を任意の固定幅に整形して表示できます。たとえば、小数点の位置を揃えるために「全体の幅を12文字」「小数点以下を4桁」に指定したい場合は、format()メソッドを次のように使います。 >>> x = 12.35874 >>> print({:12.4f}.format(x)) 12.3587 書式指定 {:12.4f} のうち、「12」が出力全体の幅(文字数)、「.4f」が小数点以下4桁の浮動小数点数であることを意味します。デフォ