Python math.isclose() 方法



Python 的math.isclose() 方法用于确定两个浮点数是否在指定的容差范围内彼此接近。

它比较两个数字“a”和“b”,如果它们的值在相对或绝对容差范围内接近,则返回“True”。从数学上讲,它表示为:

|a - b| ≤ max(rel_tol × max(|a|, |b|), abs_tol)

简单来说,该方法检查“a”和“b”之间的绝对差是否在某个容差范围内。

  • 如果绝对差小于或等于相对容差乘以两个数字中较大者的最大值或绝对容差,则该方法返回“True”;否则,返回“False”。
  • 如果“a”或“b”是 NaN,则结果始终为“False”。
容差是指比较两个值时允许的偏差或误差范围。它表示可以认为不重要的值的差值最大值。

语法

以下是 Python math.isclose() 方法的基本语法:

math.isclose(a, b, *, rel_tol=1e-9, abs_tol=0.0)

参数

此方法接受以下参数:

  • a - 这是一个表示第一个数字的数值。

  • b - 这是一个表示第二个数字的数值。

  • rel_tol (可选) - 这是一个浮点数,表示相对容差(作为较大绝对值的几分之几的最大允许差值)。默认值为 1e-9。

  • abs_tol (可选) - 这是一个浮点数,表示绝对容差(最大允许差值)。默认值为 0.0。

math.isclose() 方法的 rel_tol 和 abs_tol 参数是互斥的。您只能提供其中一个。

返回值

该方法返回一个布尔值(True 或 False),指示两个数字“a”和“b”是否在指定的容差范围内彼此接近。

示例 1

在以下示例中,我们检查“0.1”和“0.2”的总和是否近似等于“0.3”,并检索结果:

import math
result = math.isclose(0.1 + 0.2, 0.3)
print("The result is:",result)   

输出

获得的输出如下:

The result is: True

示例 2

如果数字之间的差值在指定的容差范围内,则math.isclose() 方法返回 True。

这里,我们检查数字“1000”和“1001”是否在“0.001”的相对容差和“0.01”的绝对容差范围内近似相等:

import math
result = math.isclose(1000, 1001, rel_tol=0.001, abs_tol=0.01)
print("The result is:",result)  

输出

以下是上述代码的输出:

The result is: True

示例 3

如果数字之间的相对差值超过指定的容差,则math.isclose() 方法返回 False。

现在,我们比较数字“0.0001”和“0.0002”,相对容差为“0.1”:

import math
result = math.isclose(0.0001, 0.0002, rel_tol=0.1)
print("The result is:",result)  

输出

我们得到如下所示的输出:

The result is: False

示例 4

在此示例中,我们正在比较两个非常大的数字“1e10”和“1e10 + 1”,相对容差为“0.001”:

import math
result = math.isclose(1e10, 1e10 + 1, rel_tol=0.001)
print("The result is:",result)  

输出

产生的结果如下所示:

The result is: True
python_maths.htm
广告