Суть проблемы заключается в том, что при подсчете разных чисел с плавающей точкой есть много неприятных и тонких моментов.
Ну например, есть довольно тривиальная задачка на вероятности:
В магазине стоят два платёжных терминала. Каждый из них может быть неисправен
с вероятностью 0,3 независимо от другого терминала. Найдите вероятность того, что
хотя бы один платежный терминал исправен.
Правильным ответом здесь является
0.91, т.е
P = (0.3 * 0.7) + (0.7 * 0.3) + (0.7 * 0.7)
Но интерпритатор питона выдает не очень корректный результат (
0.9099999999999999
).
Я знаю, что это происходит из-за специфичной реализации хранения вещественных чисел в памяти.
Но мой вопрос заключается в том, как именно можно обходить подобные проблемы при работе с такими числами в Python?