Python Glossary English

Python 3.5+mathпонятие

math.isclose

сравнение

Проверяет примерное равенство двух чисел с учётом погрешности.

Синтаксис

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

Допуск по умолчанию относительный: он считается в долях от большего по модулю из двух чисел, поэтому сравнение с нулём всегда проваливается — math.isclose(1e-12, 0) вернёт False при любом rel_tol. Если один из операндов может оказаться нулём или очень малой величиной, задавай abs_tol явно. Функция появилась в Python 3.5; NaN не близок ни к чему, включая самого себя, а для комплексных чисел есть cmath.isclose.

Примеры

import math
print(math.isclose(0.1+0.2, 0.3))  # → True
print(math.isclose(1.0, 1.0000001))  # → False (rel_tol по умолчанию 1e-09, а разница 1e-07)
print(math.isclose(1.0, 1.001))  # → False
print(math.isclose(1.0, 1.001, rel_tol=0.01))  # → True
print(math.isclose(0.0, 0.0))  # → True
print(math.isclose(1e-10, 0, abs_tol=1e-9))  # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности