2017-11-12 8 views
-2

私の任命は、あなたが7.5%の利子で$ 2500で始まる場合、$ 5000に達するまでの年数を計算することです。計算は10年でなければならないが、11年を出力する。これは単純な構文エラーかもしれませんが、私は過去2時間この問題を修正しています。Java化合物利息計算

final double principle = 2500.00; 
double accrued = 0; 
final double interest = 0.075; 
int year = 0; 
double interest1 = 1.0 + interest; 
while (accrued < 5000.00) 
{ 
    accrued = principle * Math.pow(interest1, year); 
    year++; 
} 
System.out.printf("It would take %d years to reach at least $5000 if you start with $2,500 with 7.5%% compound interest.", year); 
+0

あなたはこれがなぜ起こるか見るためにいくつかのステップバイステップのデバッグを行う必要があります。 –

+1

計算を実行してから年を増やしています。増分を計算の前に移動してみてください。 – pstrjds

+0

@pstrjdsそれはそれを修正するように見えた、ありがとう。 –

答えて

0

はこれを試してみてください:

final double principle = 2500.00; 
double accrued = 0; 
final double interest = 0.075; 
int year = 0; 
double interest1 = 1.0 + interest; 
while (accrued < 5000.00) 
{ 
    year++; 
    accrued = principle * Math.pow(interest1, year); 
} 
System.out.printf("It would take %d years to reach at least $5000 if you start with $2,500 with 7.5%% compound interest.", year); 
+0

なぜあなたは 'year ++'から変更しましたか?あなたが表示したものは問題を修正する必要がありますが、なぜこれを修正すべきかを説明した場合、答えとして役立つでしょう。 – pstrjds

+0

ロジックに単純な間違いがありました。私たちはまず年を増やすべきです。 while条件のために複合値を割り当てます。そして、私のIDEでデバッグしていたときは、年=年+1でした。年++ははるかに良い –

+0

それは単なる単純な間違いでしたが、あなたはちょうど説明のないコード(正しくフォーマットされていないbtw)をダンプしました。なぜこれがあなたの答えに役立つ/答えになるのかについて、少なくとも最小限の説明を加えることが最善です。 – pstrjds