Как оценить, достаточно ли близки два числа в Python?

У меня есть два номера -

3,125000 МБ и 2,954880 МБ.

Я хочу сравнить их, и он должен вернуть True, поскольку они почти 3 Мбайт. Как я могу сделать это в Python3.

Я пытался делать math.isclose(3.125000,2.954880, abs_tol=0.1),

Тем не менее, это возвращает False, Я действительно не понимаю, как поставить толерантность здесь.

math.isclose(3.125000,2.954880,  abs_tol=0.1). 

https://docs.python.org/3/library/math.html

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

Я использую Python 3.5.2.

Ожидаемый результат True, Фактический результат False,

2 ответа

Ваша абсолютная терпимость установлена ​​на 0.1поэтому разница должна быть меньше 0.1 считать их равными; 3.125000 - 2.954880 является (округлено) 0.17012, который слишком велик.

Если вы хотите, чтобы они были рассмотрены closeнемного увеличьте вашу терпимость, например:

math.isclose(3.125000, 2.954880, abs_tol=0.2)

который возвращается True как вы ожидаете.

Функция math.isclose действительно предназначен для работы с неточностями с плавающей точкой. Вы можете использовать его для этого, но вам нужно настроить его соответствующим образом: числа в вашем примере больше, чем 0.1 Кроме.

Если вы не беспокоитесь о неточностях с плавающей запятой, лучший способ сравнить их является очевидным:

def equivalent(a, b):
    return abs(a-b) < 0.1
Другие вопросы по тегам