首页 >后端开发 >Python教程 >如何在 Python 中比较浮点数是否接近相等?

如何在 Python 中比较浮点数是否接近相等?

Linda Hamilton
Linda Hamilton原创
2024-12-19 06:55:09757浏览

How to Compare Floating-Point Numbers for Near-Equality in Python?

Python 中几乎相等的浮点比较

由于精度问题,在 Python 中比较浮点数是否相等可能会带来挑战和舍入误差。为了解决这个问题,必须采用能够进行有意义比较的技术。

一种方法是使用 Python 3.5 中引入的标准库函数:

import math
math.isclose(a, b, rel_tol=1e-09, abs_tol=0.0)

rel_tol 参数指定相对容差,它是应用于所比较的两个数字中较大者的乘数。 abs_tol 表示直接应用于数字之间差异的绝对容差。

如果 ab 之间的差值小于相对或绝对容差,两个数字被认为几乎相等,并且函数返回 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn