-3

はい、以前に同じコードで質問しましたが、複利計算式を開始するために、修正できないように見える問題がさらに発生しています。奇妙な数のコードが出力されます。また、行System.out.println(compound); 「化合物は変数エラーに解決できません」という理由でmainメソッドが機能しないため、印刷できません。

import java.io.*;

class cexample {
    public static double squared(double x){
        return x*x;
    } 

    public static void main(String[] args)   throws IOException {
        System.out.println(balance(0.0, 0.0,1.0));
        System.out.println(balance);
    }

    static public double balance(double principal, double rate, double years) throws IOException{
        double amount = 0;
        String input;
        String input2;
        years = 1;
        BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in));
        System.out.print("How much would you like to take out? ");
        input = myInput.readLine ();
        principal = Double.parseDouble (input);        
        System.out.print("Enter the interest rate: ");
        input2 = myInput.readLine ();
        rate = Double.parseDouble (input2);
        System.out.println("Now, enter the amount of years (1-10)");
        input = myInput.readLine ();
        years = Double.parseDouble (input);  
        for (int i = 0; i < years; i++) {
            // equation, M = P *( 1+ rate) * years^2
            amount = principal * (1 + rate) *( squared(years));
            //amount += principal;
        }
        System.out.println("The amount is " + amount);
        return amount; //- principal;
    }
}
4

3 に答える 3

0

複利の計算式は次のとおりです。

principal * (1+(rate/compounding periods) ^ (years / compounding periods)

あなたの場合、複利計算期間は1です

計算を行う別の方法は次のとおりです。

for(# of years)
  principal *= 1+rate

あなたは両方をやっていて、さらに年数を二乗していますが、どこでそのアイデアを思いついたのかわかりません。

于 2013-03-07T22:23:36.377 に答える
0

はメソッドであるため、この行は問題を引き起こしていますbalance戻って、前の質問に対する私の答えを読み直してください。読んだり理解したりせずに、私が提供したコードの一部をコピーしたようです。自分がしていると思うことを実際に行っていることを確認する必要があります。

そして、結果として常に0を取得します(前の質問のコメントですでに説明したように)。これは、その年に1を渡し、forループが1から始まるため、実際には何も計算しないためです。

于 2013-03-07T22:24:45.500 に答える
0

私は実際にはJavaの専門家ではありませんが、代わりに数学関数を使用します。これでうまくいくはずです。

import java.lang.Math;

P * Math.pow((1 + r), (years/period))
于 2013-03-07T22:41:09.280 に答える