在 Python 中舍入到有效数字

Shivam Arora 2023年1月30日
  1. 在 Python 中使用 round() 函数将数字四舍五入到给定的有效数字
  2. 在 Python 中使用 math 模块将数字四舍五入到给定的有效数字
  3. 在 Python 中使用字符串格式将数字四舍五入到给定的有效数字
  4. 在 Python 中使用 sigfig 模块将数字四舍五入到给定的有效数字
在 Python 中舍入到有效数字

四舍五入意味着用一个接近它的近似值替换一个数字。我们还可以将数字四舍五入到所需的有效数字。

在本文中,我们将在 Python 中将数字四舍五入为特定的有效数字。

在 Python 中使用 round() 函数将数字四舍五入到给定的有效数字

round() 函数将给定的浮点值四舍五入到最接近的整数或指定的小数位。

我们可以使用负数通过将整数分配给 round() 函数来将整数四舍五入为有效的下限值。要指定的负数取决于所需的有效数字。

例如,如果我们希望四舍五入到一位有效数字,我们可以在 round() 函数中将该值指定为 (1-total digits)。

请参考以下代码。

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 说明符格式化四舍五入到指定有效数字的浮点数。如果最终数字的大小很大,则以科学记数法表示。

此方法返回一个字符串。因此,我们必须在格式化后将字符串数字转换回浮点数或整数值。

例如,

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

输出:

1000.0

在 Python 中使用 sigfig 模块将数字四舍五入到给定的有效数字

sigfig 模块最适合将数字四舍五入到有效数字,因为它最大限度地减少了创建用户定义函数的麻烦并简化了代码。

我们可以在这个模块的 round() 函数中指定有效数字的数量。

请参考以下示例。

from sigfig import round

print(round(1324, sigfigs=1))

输出:

1000