Python cmath 模块的 cmath.isclose() 函数用于验证两个浮点是否在特定容差范围内彼此接近。如果给定值接近,则此函数返回 True,否则返回 False。
当两个数字在数学上彼此接近时,这些值表示为 -
|a - b| ≤ max(rel_tol × max(|a|, |b|), abs_tol)
- 如果两个数字之间的绝对差小于或等于相对容差,则此函数返回 “True”;否则为 “False”。
- 如果 a 和 b 的值为 NaN,则结果始终为 False。
语法
以下是 Python cmath.isclose() 函数的基本语法 -
cmath.isclose(a, b, *, rel_tol=1e-9, abs_tol=0.0)
参数
- a − 这是表示第一个数字的数值。
- b − 这是表示第二个数字的数值。
- rel_tol - 此处 relative tolerance 是 float 表示。相对容差的默认值为 1e-9。
- abs_tol - 这里 absolute tolerance 是 float 表示。绝对容差的默认值为 0.0。
返回值
此方法返回布尔值,即 True 或 False。
示例 1
在下面的示例中,我们将使用 cmath.isclose() 函数检查 0.2 和 0.3 之和是否等于 0.5。如果值相等,则将检索 True。
import cmath
x = cmath.isclose(0.2+0.3, 0.5)
print(x)
输出
获得的输出如下 -
True
示例 2
在这里,我们使用 cmath.isclose() 函数检查数字 “2000” 和 “2002” 是否相等,相对容差为 “0.002”,绝对容差为 “0.02”。
import cmath
res = cmath.isclose(2000, 2002, rel_tol=0.002, abs_tol=0.02)
print(res)
输出
以下是上述代码的输出 -
True
示例 3
在下面的示例中,我们使用 cmath.isclose() 函数比较相对容差为 “0.001” 的大数字,即 “1e10” 和 “1e10+1”。
import cmath
x = cmath.isclose(1e10, 1e10+1, rel_tol=0.001)
print(x)
输出
结果如下 -
True