2016-10-22 7 views
0

Привет, я работаю над инвестиционной программой, в которой вы определяете, лучше ли вкладывать столько денег, сколько сможете, в свои студенческие ссуды до сбережения на пенсию или, если лучше заплатить минимальный платеж ваш кредит и инвестировать остальные.Ошибка функции питания

У меня возникла проблема с моей функцией питания. он продолжает идти в бесконечность, хотя я проверил каждую часть, где бесконечные числа, но futureInvestment = inf каждый раз. Может ли кто-нибудь сказать мне, что я тут делаю неправильно?
Ps Я также использовал include в файле заголовка.

totalTime = (retireAge-currentAge); 
//A = P(1+r/n)^nt 
moneyAfterMinPayment = (userMoney-monthlyLoanPayment)*12; 
printf("money after min payment each year is %lf \n",moneyAfterMinPayment); 

//test P = 5000. r = 5/100 = 0.05 (decimal). n = 12. t = 10. 

futureInvestment = pow(moneyAfterMinPayment*(1+    
investmentReturnRate),totalTime); 
+4

Возможно, вы забыли включить «math.h». Можете ли вы скомпилировать предупреждения? Можете ли вы предоставить [mcve]? –

+0

Вы проверили аргументы в pow? это может помочь просто распечатать их, чтобы убедиться, что они разумны. –

+0

Проведение типов переменных поможет. – chux

ответ

0

Так заменить формулу:

futureInvestment = pow(moneyAfterMinPayment*(1+investmentReturnRate),totalTime); 

этим одним:

futureInvestment = moneyAfterMinPayment * pow((1+investmentReturnRate),totalTime); 

если investmentReturnRate = 0.0, то результат должен быть таким же, как moneyAfterMinPayment.

0

Типичные значения:

totalTime is about 40. 
moneyAfterMinPayment is about 5000. 
investmentReturnRate is about 1.05 

Так рассчитать (5000*1.05)**40, который 5250**40, что составляет около 10**150.

Теперь вы должны обнаружить себя, какова правильная формула.

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

+0

На мой взгляд, переменная moneyAfterMinPayment не должна быть в формуле pow, но должна умножаться на результат pow. –

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