计算错误

时间:2014-04-10 22:16:24

标签: java

我的程序遇到了麻烦。我应该接受3个变量并将它们插入公式中以获得答案。我的回答是0.0,我不确定我做错了什么。

public double compute_cert (int years, double amount, double rate, double certificate)
{
    certificate = amount * Math.pow(1 + rate/100, years);
    return certificate;
}

变量rate,amount和years设置正确,但答案证书总是返回0.0

public static void main(String[] args)
{
    int years = 0;
    double amount = 0;
    double rate = 0;
    double certificate = 0;
    char ans;// allows for char 

    do{
        CDProgram C = new CDProgram(years, amount, rate, certificate);
        C.get_years();
        C.get_amount();
        C.get_rate();
        C.get_info();
        C.compute_cert(years, amount, rate, certificate);
        System.out.println ("Would you like to repeat this program? (Y/N)");
        ans = console.next().charAt(0);// user enters either Y or y until they wish to exit the program
   } while(ans == 'Y'||ans == 'y'); // test of do/while loop

}

不确定还能做什么。谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

看起来你没有分配你传递给计算函数的局部变量?

   years = C.get_years();
   amount = C.get_amount();
   rate = C.get_rate();
   info = C.get_info();

实际上,代码只是将每个参数的0传递给您的函数。乘以0将获得0。如果您通过0,则以下行会将0乘以某个数量。

certificate = amount * Math.pow(1 + rate/100, years);

答案 1 :(得分:0)

您的CDProgram类似乎包含yearsamountrate的字段,而您的get_方法正在提示用户输入值。

在这种情况下,将参数传递给计算方法是没有意义的。我会改变方法。

public double compute_cert () {
    certificate = amount * Math.pow(1 + rate/100, years);
    return certificate;
}

然后,当您在main中调用它时,请不要传入任何值。这只会使用CDProgram类中字段的值。