Revencu
@Revencu

Почему не работает правильно функция POW (Python)?

У меня код на VBS и надо перевести его на Python 2.7 (используется при вычислении "Эффективная годовая процентная ставка"):
wscript.echo 1.5^(-1/12)  '0.966775705727066
wscript.echo 1.5^(-2/12) '0.934655265184067
wscript.echo 1.5^(-3/12) '0.903602003609845
wscript.echo 1.5^(-4/12) '0.873580464736299
wscript.echo 1.5^(-5/12) '0.844556370304814
wscript.echo 1.5^(-6/12) '0.816496580927726
wscript.echo 1.5^(-7/12) '0.789369058250139
wscript.echo 1.5^(-8/12) '0.763142828368888


Но на Python я имею совсем другие значения:
print pow(1.5, -1/12) # 0.6666666666666666
print pow(1.5, -2/12) # 0.6666666666666666
print pow(1.5, -3/12) # 0.6666666666666666
print pow(1.5, -4/12) # 0.6666666666666666
print pow(1.5, -5/12) # 0.6666666666666666
print pow(1.5, -6/12) # 0.6666666666666666
print pow(1.5, -7/12) # 0.6666666666666666
print pow(1.5, -8/12) # 0.6666666666666666

Где же проблема?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
python 2, в отличии от python 3, работает с int при делении.

Добавьте
from __future__ import division
в начало вашего кода

Либо, можете сделать так:
print pow(1.5, -1/float(12))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Revencu
@Revencu Автор вопроса
Ах... нашёл ошибку:
надо
print pow(1.5, -1.0/12)

Всем спасибо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы