Python 中几乎相等的浮点比较
由于精度问题,在 Python 中比较浮点数是否相等可能会带来挑战和舍入误差。为了解决这个问题,必须采用能够进行有意义比较的技术。
一种方法是使用 Python 3.5 中引入的标准库函数:
import math math.isclose(a, b, rel_tol=1e-09, abs_tol=0.0)
rel_tol 参数指定相对容差,它是应用于所比较的两个数字中较大者的乘数。 abs_tol 表示直接应用于数字之间差异的绝对容差。
如果 a 和 b 之间的差值小于相对或绝对容差,两个数字被认为几乎相等,并且函数返回 True。否则,它返回 False。
对于 3.5 之前的 Python 版本,可以按如下方式定义等效函数:
def isclose(a, b, rel_tol=1e-09, abs_tol=0.0): return abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
以上是如何在 Python 中比较浮点数是否接近相等?的详细内容。更多信息请关注PHP中文网其他相关文章!