Код: Выделить всё
>>> 9007199254740993 == 9007199254740993.0
False
Python полностью поддерживает смешанную арифметику: когда оператор двоичной арифметики имеет операнды разных числовых типов, операнд с «более узким» типом расширяется до операнда другого типа, где целое число уже, чем с плавающей запятой, что уже, чем комплексный. При сравнении чисел смешанного типа используется то же правило.
Похоже, этого не происходит:
Код: Выделить всё
>>> float(9007199254740993) == 9007199254740993.0
True
Подробнее здесь: https://stackoverflow.com/questions/314 ... 54740993-0
Мобильная версия