2012-04-24 12 views
0

いくつかの入力を受け取り、将来の投資計算を行う簡単なプログラムを作成しました。単純な計算で正しい値が表示されない

しかし、何らかの理由で、私は次の値を入力したとき: 投資を= 1人の 関心= 5 年= 1

私はYour future value is 65.34496113081846それがあるべき1.05を取得します。

import java.util.*; 

public class futurevalue 
{ 
    public static void main(String[] args) 
    { 

    Scanner sc = new Scanner(System.in); 

    System.out.println("This program will calculate your future investment value"); 

    System.out.println("Enter investment amount: "); 
    double investment = sc.nextDouble(); 

    System.out.println("Enter annual interest amount: "); 
    double interest = sc.nextDouble(); 

    System.out.println("Enter number of years: "); 
    int year = sc.nextInt(); 


    double futureValue = investment * (Math.pow(1 + interest, year*12)); 

    System.out.println("Your future value is " + futureValue); 


    } 
} 

私の間違いが見つかりました。私は興味を二度分けました。

+1

あなたの毎月の利息を100で割ってはいけませんか? –

+2

あなたの興味は500%です。 5%または0.05を試してください。 –

+0

くそー、私はそんなにばかです。 Jeffとdystroyに感謝します。 – Huy

答えて

2

あなたは金利が入力されている方法100

+0

私はまだそれが1.05を与えないと思う。複利。 –

+0

@MarkByersそれは(約)1.05を与えるが、私はあなたに同意するAPRから月次利子を計算する間違った方法のように見える – trutheality

1

でご関心を分割すべきか? Math.powの中に1を加える前に100で割ってはいけませんか?

例:1を入力するとMath.pow(1 + 1、year * 12)が不正確になります。

0

はい、あなたの主な誤差はパーセントから割合に変換するために、100で割るのではなく、あなたは別のエラーがあります:あなたは、5%の4月あなたが配合毎月の計算に使用する必要がある式を持っている場合は

を興味が5%/12ではない、それは

(0.05+1)^(1/12)-1 

だし、その投資のリターンは、ビーイングを終わる:正確

1 * ((0.05+1)^(1/12)-1 +1)^(1 * 12) = 
1 * ((0.05+1)^(1/12))^(12) = 
1 * (0.05+1) = 1.05 

関連する問題