2016-10-22 11 views
0

こんにちは私は退職のために貯蓄する前に学生ローンにできるだけ多くのお金を入れる方が良いかどうか、または の最低支払額を支払うほうがよいかどうかを決定する投資プログラムに取り組んでいます。あなたのローンをし、残りを投資してください。力の関数エラー

私のパワー機能に問題があります。私は無限の数ではなく、futureInvestment = infのたびに各部分をチェックしましたが、それは十分に無限に進み続けます。誰かがここで間違っていることを教えてもらえますか?
私はヘッダファイルに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

典型的な値:だから、およそ10**150ある、5250**40である、(5000*1.05)**40

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

を計算します。

ここで正しい式は何かを知るべきです。

次回同様の問題がある場合は、式の前後の引数の値と中間結果を出力してください。あなたは何が起こっているのか自分自身を見つけるでしょう。

+0

私の意見では、変数moneyAfterMinPaymentはpowの式には入っていませんが、powの結果が掛け合わなければなりません。 –