У меня есть этот код: http://pastebin.com/Sd9WKZFr
Когда я вызываю что-то вроде rate(60, -6000, 120000)
, он возвращает мне результат NAN
, но та же функция в MS Excel возвращает мне 0,04678...
. У меня та же проблема с -5000, -4000, -3000 и -2000.
Когда я отлаживаю код, я вижу, что в итерации 8/9 строка номер 29 начинает возвращать результат NAN
, в результате чего все остальные результаты также становятся NAN
.
НО, когда я вызываю что-то вроде rate(60, -1000, 120000)
, он возвращает мне float -0.02044...
, точно такой же результат MS Excel.
Я уже пытался преобразовать все математические вычисления в функции BCMath, но таким образом результаты -6000 неверны (-1,0427... вместо 0,04678. ..), но при использовании -1000 результат правильный, соответствующий результату excel.
Есть ли способ заставить его работать правильно?
Заранее спасибо за любой полезный взгляд на это.
rate(60, -6000, 120000)
дает промежуточный результат Rate ‹ 1 (вы уже определили это на 8/9-й итерации). Вам нужно работать над своим алгоритмом - person chris neilsen   schedule 07.04.2012