Выбор ответа Junior Типы, изменяемость и сравнение обновлено
Сравнение float в Python
Вопрос
Как правильно проверить, что 0.1 + 0.2 равно 0.3?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: math.isclose(0.1 + 0.2, 0.3). float хранится в двоичном виде IEEE 754, и 0.1 + 0.2 даёт 0.30000000000000004.
Варианты ответа
0.1 + 0.2 == 0.3round(0.1 + 0.2) == round(0.3)(0.1 + 0.2) is 0.3math.isclose(0.1 + 0.2, 0.3)правильный ответ
Разбор
float хранится в двоичном виде IEEE 754, и 0.1 + 0.2 даёт 0.30000000000000004. Сравнивают с допуском: math.isclose (по умолчанию относительный допуск 1e-09). round без второго аргумента округляет до целого, и обе части станут 0, так что проверка пропустит любые числа меньше 0.5. is сравнивает объекты, а не значения. Для денег вообще берут Decimal или целые копейки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.