2016-10-22 69 views
0

您好,我正在制定一個投資計劃,您可以確定在退休前儲存儘可能多的錢用於學生貸款,還是最好只支付 最低付款你的貸款和其餘的投資。電源功能錯誤

我的電源功能有問題。儘管我檢查了每個非無限數字的部分,但futureInvestment = inf每次都保持無窮大。有人能告訴我在這裏做什麼錯嗎?
Ps我也用在頭文件中。

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 = 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

現在你應該發現自己,什麼是正確的公式。

下一次您遇到類似問題時,請在表達式前後輸入參數值以及中間結果。你會發現自己正在發生的事情。通過這一個

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

+0

在我看來,變量moneyAfterMinPayment不必在pow的公式中,但必須乘以pow的結果。 –