#python #floating-point #precision
#python #плавающая точка #точность
Вопрос:
Я узнал об операторе «точно равно» в Erlang, который сравнивает не только значения, но и типы данных чисел, и мне стало любопытно, как все работает в Python и его единственном операторе «равно». Итак, убедившись, что
>>> 1 == 1.0
True
Я задавался вопросом о точности с плавающей запятой и добрался до этого
>>> 0.9999999999999999 == 1
False
>>> 0.99999999999999999 == 1
True
>>>
Не мог бы кто-нибудь объяснить, как здесь определяется точность с плавающей запятой? Это работает одинаково как в 2.7.1, так и в 3.1.2
Ответ №1:
Пожалуйста, ознакомьтесь с документацией Python:
Ответ №2:
Использование чисел с плавающей запятой сопряжено с опасностью.
Если вам нужна точность на таком глубоком уровне, используйте десятичный тип.
Подробнее здесь: http://docs.python.org/library/decimal.html