примерное сравнение в питоне
Я хочу, чтобы оператор '==' использовал приблизительное сравнение в моей программе: значения с плавающей запятой x и y равны (==), если
abs(x-y)/(0.5(x+y)) < 0.001
Какой хороший способ сделать это? Учитывая, что float является встроенным типом, я не думаю, что смогу переопределить оператор ==, могу ли я?
Обратите внимание, что я хотел бы использовать другие функции float, единственное, что я хотел бы изменить, это оператор равенства.
РЕДАКТИРОВАТЬ:
Спасибо за ответы, и я понимаю ваши аргументы о читабельности и других проблемах.
Тем не менее, я действительно предпочел бы, если это возможно, продолжать использовать обычный тип с плавающей точкой, вместо того, чтобы иметь новый класс или новую функцию сравнения. Можно ли вообще переопределить оператор == для регулярных операций с плавающей запятой?
Мои причины:
(а) каждый, кто использует программу, которую я пишу, хочет, чтобы результаты сравнивались поплавками
(б) в мире никому не захочется использовать значение по умолчанию == для чисел с плавающей запятой .. Почему это даже на языке ???
(c) мне не нравятся дополнительные слова в коде; очевидно, использование существующего float не приводит к изменениям в коде вообще
РЕДАКТИРОВАТЬ 2.
Теперь, когда я знаю, что не могу перегрузить оператор == для float, я должен изменить свой вопрос. Это станет настолько другим, что я сделаю новый впользовательское сравнение для встроенных контейнеров