Неожиданный вывод при использовании оператора экспоненты (**) со значением с плавающей точкой в Python
Я в настоящее время использую Python 3.6 в Windows 7.
Когда я использую оператор экспоненты (**) с плавающей точкой, которая дает большое число, я получаю неожиданный вывод.
Например, вывод "10^32" отличается от того, находится ли экспонента в форме целого числа (32) или числа с плавающей запятой (32.0).
>>>print (int(10**(32.0)))
100000000000000005366162204393472
>>>print (int(10**(32)))
100000000000000000000000000000000
Использование оператора "**" в Python(пример)
Есть ли причина для другого выхода?
Если так, как я могу решить проблему?
1 ответ
Это связано с присущей неточностью представления с плавающей запятой. См. Примеры неточностей с плавающей точкой и Что каждый компьютерный специалист должен знать об арифметике с плавающей точкой.