rel_tol это относительный допуск, он умножается на большее из значений двух аргументов; по мере увеличения значений увеличивается и допустимая разница между ними, при этом они по-прежнему считаются равными.
abs_tol это абсолютный допуск, который применяется как есть во всех случаях. Если разница меньше любого из этих допусков, значения считаются равными.
Ответ 2
Может быть достаточно чего-то такого простого, как следующее:
returnabs(f1 - f2) <= allowed_error
Ответ 3
Я бы согласился, что ответ Гарета, вероятно, наиболее подходит в качестве облегченной функции / решения.
Но я подумал, что было бы полезно отметить, что если вы используете NumPy или рассматриваете его, для этого есть упакованная функция.
Однако небольшое предупреждение: установка NumPy может быть нетривиальным процессом в зависимости от вашей платформы.
Ответ 4
Используйте decimal модуль Python, который предоставляет Decimal класс.
Из комментариев:
Стоит отметить, что если вы выполняете тяжелую математическую работу и вам абсолютно не нужна точность десятичной дроби, это действительно может привести к сбоям. С числами с плавающей запятой работать намного, намного быстрее, но неточно. Десятичные дроби чрезвычайно точны, но медленны.