-3

是的,我以前用相同的代码问过问题,但出现了更多我似乎无法解决的问题,开始复利公式正在打印出奇怪数量的代码。还有 System.out.println(compound); 在主要方法中不起作用,因为“化合物无法解析为变量错误)所以我无法打印它。

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

我不是真正的 Java 专家,但我会改用数学函数,这应该可以完成工作:

import java.lang.Math;

P * Math.pow((1 + r), (years/period))
于 2013-03-07T22:41:09.280 回答
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 回答