Python で有効数字に丸める

Shivam Arora 2023年1月30日
  1. Python で round() 関数を使用して数値を指定された有効数字に丸める
  2. Python で math モジュールを使用して数値を指定された有効数字に丸める
  3. Python で文字列フォーマットを使用して数値を指定された有効数字に丸める
  4. Python で sigfig モジュールを使用して数値を指定された有効数字に丸める
Python で有効数字に丸める

数値を四捨五入するとは、数値をそれに近い近似値に置き換えることを意味します。数値を必要な有効数字に丸めることもできます。

この記事では、Python で数値を特定の有効数字に丸めます。

Python で round() 関数を使用して数値を指定された有効数字に丸める

round() 関数は、指定された浮動小数点値を最も近い整数または指定された小数点以下の桁数に丸めます。

負の数を使用して、整数を round() 関数に割り当てることにより、整数を重要なフロア値に丸めることができます。指定するこの負の数は、必要な有効数字によって異なります。

たとえば、有効数字 1 桁に丸めたい場合は、round() 関数で値を(1-合計桁数)として指定します。

次のコードを参照してください。

x = round(1342, -3)
print(x)

出力:

1000

Python で math モジュールを使用して数値を指定された有効数字に丸める

この方法は、前述の機能を改良したものです。これをより便利にするために、単純なユーザー定義関数を作成できます。このメソッドの round() 関数で負の数を指定する必要はありません。math.floor() 関数と math.log10() 関数の組み合わせを使用してこれを置き換えます。

以下のコードを参照してください。

from math import log10, floor


def round_it(x, sig):
    return round(x, sig - int(floor(log10(abs(x)))) - 1)


print(round_it(1324, 1))

出力:

1000

Python で文字列フォーマットを使用して数値を指定された有効数字に丸める

Python では、文字列の%g 指定子は、指定された有効数字に丸められた浮動小数点数をフォーマットします。最終的な数の大きさが巨大である場合、それは科学的記数法でそれを示します。

このメソッドは文字列を返します。したがって、文字列番号をフォーマットした後、float または整数値に変換し直す必要があります。

例えば、

x = float("%.1g" % 1324)
print(x)

出力:

1000.0

Python で sigfig モジュールを使用して数値を指定された有効数字に丸める

sigfig モジュールは、ユーザー定義関数を作成する手間を最小限に抑え、コードを簡素化するため、数値を有効数字に丸めるのに最適です。

このモジュールの round() 関数で有効桁数を指定できます。

次の例を参照してください。

from sigfig import round

print(round(1324, sigfigs=1))

出力:

1000