Python3 math.isclose()方法 - 判断两个值是否接近
描述
math.isclose() 方法返回用于检查两个值是否彼此接近,如果值接近,则返回 True,否则返回 False。
math.isclose() 根据给定的绝对和相对容差确定两个值是否被认为是接近的。
计算公式为:
abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
本方法要求python版本至少为:Python 3.5
语法
math.isclose() 方法语法如下:
math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)
参数说明:
- a -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。
- b -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。
- rel_tol -- 是相对容差,它是 a 和 b 之间允许的最大差值,相对于 a 或 b 的较大绝对值。例如,要设置5%的容差,请传递 rel_tol=0.05 。默认容差为 1e-09,确保两个值在大约9位十进制数字内相同。 rel_tol 必须大于零。
- abs_tol -- 是最小绝对容差,对于接近零的比较很有用。 abs_tol 必须至少为零。
返回值
返回一个布尔值,检查两个值是否彼此接近,如果值接近,则返回 True,否则返回 False。
实例
以下实例检查两个值是否彼此接近:
# 导入 math 包
import math
# 输出两个值是否接近
print(math.isclose(8.005, 8.450, abs_tol = 0.4))
print(math.isclose(8.005, 8.450, abs_tol = 0.5))
输出结果:
False True
以下实例检查两个浮点数是否接近:
# 导入 math 包
import math
# 可用于浮点数判断
# 这样会输出 false,0.1+0.2 不会等于 0.3
print(0.1+0.2 == 0.3)
print(0.1+0.2 )
# 这样会输出 true
print(math.isclose(0.1+0.2, 0.3))
输出结果:
False 0.30000000000000004 True