在Python中,比较float与几乎相等的最佳方法是什么?
Python 3.5添加了PEP 485中描述的math.isclose和cmath.isclose功能。
math.isclose
cmath.isclose
如果你使用的是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)
rel_tol是一个相对容差,它乘以两个参数中的较大者;当值变大时,它们之间的允许差异也会变大,同时仍将它们视为相等。
rel_tol
abs_tol是在所有情况下均按原样应用的绝对公差。如果差异小于这些公差中的任何一个,则认为值相等。
abs_tol