Проблема с пауком дает мне бесконечный ответ - PullRequest
2 голосов
/ 16 июня 2020
• 1000 .

Кто-нибудь знает, что происходит?

1 Ответ

3 голосов
/ 16 июня 2020

Проблема заключается в показателе степени ( т.е. второй параметр) std::pow. Выражение

-due_dates_per_year * t

- это сгруппировано как (-due_dates_per_year) * t (именно так грамматика C ++ анализирует выражение). Унарное отрицание типа unsigned дает большое (а также unsigned) число, которое объясняет результат.

Помимо использования типа signed для due_dates_per_year, перестановка

double df = std::pow(1 + rate / due_dates_per_year, -t * due_dates_per_year);

- исправление.

...