Python で有効数字に丸める
Shivam Arora
2023年1月30日
-
Python で
round()
関数を使用して数値を指定された有効数字に丸める -
Python で
math
モジュールを使用して数値を指定された有効数字に丸める - Python で文字列フォーマットを使用して数値を指定された有効数字に丸める
-
Python で
sigfig
モジュールを使用して数値を指定された有効数字に丸める
数値を四捨五入するとは、数値をそれに近い近似値に置き換えることを意味します。数値を必要な有効数字に丸めることもできます。
この記事では、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