Вопросы к Поиску с Алисой
Неожиданное округление чисел с плавающей точкой в Python может происходить из-за перевода десятичных дробей в двоичную систему в памяти компьютера. skillbox.ru Получающееся двоичное число может недостаточно точно представлять исходное число с основанием 10. habr.com Например, когда в интерпретатор Python вводится число 0.1, оно сохраняется в памяти как число с плавающей точкой и преобразуется. habr.com 0.1 — это десятичное число с основанием 10, но числа с плавающей точкой хранятся в двоичной записи. habr.com То есть основание 0.1 преобразуется из 10 в 2. habr.com Получающееся двоичное число может быть бесконечно повторяющимся десятичным числом, записанным с основанием 2. habr.com Память компьютера конечна, поэтому бесконечно повторяющееся представление двоичной дроби 0.1 округляется до конечной дроби. habr.com
Ещё несколько причин, по которым число округляется при его представлении в виде числа с плавающей точкой: habr.com
Чтобы получать более предсказуемый результат, можно использовать модуль Decimal. skillbox.ru