Python3 入门教程 Python3 math.isclose()方法 - 判断两个值是否接近

2024-02-25 开发教程 Python3 入门教程 匿名 3

描述

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