У меня есть сценарий со следующими утверждениями:Python вычисляет математическое выражение неправильно
Me = 5.97219E+24 Ms = 1.9891E+30 ae = 149597887155 r = ae*((Me/Ms)**(2/5))
После запуска скрипта, переменная r
имеет такое же значение, 149597887155, которая является такой же, как ae
. Это, очевидно, не значение, которое я ожидал бы после оценки выражения.
Я попытался перезагрузить свой компьютер, запустив новый интерпретатор Python и даже установив другой дистрибутив Python. Это тот же результат в каждом случае.
В настоящее время я использую Anaconda с Python 2.7 и Spyder в качестве редактора.
Любопытно, что при копировании и вставке операторов в интерпретатор напрямую они оцениваются правильно.
Звучит это знакомо кому-либо? Есть ли известная причина для этого?
'2/5' является' 0'. Используйте '2.0/5.0'. Когда вы «копируете и вставляете инструкции в интерпретатор напрямую», вы используете python 3? – geoffspear
Любое число, поднятое до 0-й степени == 1, и любое число раз 1. Следовательно, 'ae == r' – SethMMorton