2016-02-26 3 views
0

Ниже приводится код, который я пытаюсь использовать, чтобы получить свой результат, и я получаю сообщение об ошибке:Вычислить процент внутренней нормы доходности

import numpy 

array = [-1000,0,0,1094.60,0,0,1094.60] 

for b in array: 
    a = round(numpy.irr(array), b-1) * 100 
print (round(a,2)) 

Ошибка:

TypeError: 'float' object cannot be interpreted as an integer 

Но, только заменяя «b-1», мой код работает, но я не могу его использовать, потому что массив может быть как можно большим или малым. Мне не разрешено вручную вводить числа, заменяющие «b-1». Ниже приведен один и тот же рабочий код.

import numpy 

array = [-1000,0,0,1094.60,0,0,1094.60] 

for b in array: 
    a = round(numpy.irr(array), 6) * 100 
print (round(a,2)) 

Мне нужен способ сделать это автоматически для любого размера массива.

ответ

0

У вас есть ошибка, потому что вы пытались округлить скорость до 1093.60 десятичных знаков (это b-1 для 4-й итерации).

numpy.arr работает с любым размером массива. Вам не нужно придавать ему размер (и вы этого не сделали). Я понимаю, что вы пытаетесь напечатать процентную ставку в процентах, округленную до 2 знаков после запятой. Используйте вместо этого:

rate = numpy.irr(array) * 100 
print "rate =", round(rate, 2) 

Используя это в конце кода, который я дал вам ранее дает этот выход для сравнения:

Present Value (P) at rate 0.0125 = 0.217803365612 
Present Value (P) at rate 0.01875 = -0.143198101517 
Present Value (P) at rate 0.015625 = 0.0349275148787 
Present Value (P) at rate 0.0171875 = -0.0547196000329 
Present Value (P) at rate 0.01640625 = -0.0100432897584 
Present Value (P) at rate 0.016015625 = 0.0124051532756 
Present Value (P) at rate 0.0162109375 = 0.00117171042648 
rate = 1.62 
+0

Хорошо. Это и есть. Теперь я могу использовать тот же самый код, что и в предыдущем посте, чтобы все было в порядке? или нет? Потому что я использую тот же код, и я не получаю то же значение для «netflow». Однако, когда я делал это на бумаге, он соответствует моему ответу. – Master

+0

Будьте предельно ясны. Вы спрашиваете меня, можете ли вы использовать тот же код, но затем укажите, что тот же код не дает вам того же значения. Я почти не могу проверить исходные данные, поскольку эта почта, похоже, пропала и находится под другой учетной записью. – Prune

+0

Я не имею в виду исходный код. Последний код, который у меня есть по этой ссылке: http: //stackoverflow.com/questions/35661992/how-do-i-formulate-an-equation-so-that-it-calculates-my-i-value/35662689#35662689 Вы можете ответить там сейчас – Master

Смежные вопросы