Я работаю ежедневно с Python 2.4 в моей компании. Я использовал универсальную функцию логарифма «журнал» из стандартной математической библиотеки, и когда я ввел журнал (2 ** 31, 2), он возвратил 31.000000000000004, что показалось мне немного странным.Неточный Логарифм в Python
Я сделал то же самое с другими полномочиями 2, и он отлично работал. Я побежал 'log10 (2 ** 31)/log10 (2)', и я получил раунд 31.0
Я попытался запустить ту же оригинальную функцию в Python 3.0.1, предполагая, что она была исправлена в более продвинутой версии.
Почему это происходит? Возможно ли, что есть некоторые неточности в математических функциях в Python?
дубликата многолетних точек вопроса Плавучего (? почему я получаю сообщение об ошибке с плавающей точкой), не может найти лучший дубликат Q на сообщение, может быть, кто-то другой может. –
Я должен отметить, что Python 3 сделал * not * исправил ошибку с плавающей запятой. Вместо этого на выходе печати используется интеллектуальный алгоритм для отображения предполагаемого значения с плавающей запятой, а не слабины. –