方法不划分所需的双倍值

时间:2015-08-21 05:25:50

标签: java double division

在我的程序中,我试图划分两个double值并返回它的商。像这样:

public double getMonthlyPayment(){
    double monthlyRate = AnnualInterestRate / 1200;
    double numberOfMonths = numberOfYears * 12;

    double dividend = (loanAmount * monthlyRate);
    double divisor = (1 - Math.pow(1+monthlyRate, -numberOfMonths));

    return dividend / divisor;
}

目前它没有回复我期待的价值。它只返回股息值,而不是除数除以除数时的值。

例如,由于这是一个贷款计算器,我需要贷款2000美元,5%的利息2年。为了达到这个值,你需要使用某个等式。

我在上面的代码中制作了我自己的等式形式,它只返回被除数值(loanAmount * monthlyRate),而不是返回被除数除以(1 - Math.pow(1+monthlyRate, -numberOfMonths))的股息值}

有人可以帮我吗?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的代码没有显示,但如果AnnualInterestRateint,那么1200的除法是使用整数逻辑完成的,结果(整数)是然后被强制转移到double。指定1200.0会强制AnnualInterestRate强制double 分割之前。

答案 1 :(得分:0)

我们不知道您问题中所有变量的数据类型。如果右侧的数据类型是整数且左侧是double,则显式地将结果转换为double

正确的代码应该是:

public double getMonthlyPayment(){
    double monthlyRate = (double)AnnualInterestRate / 1200;
    double numberOfMonths = (double) numberOfYears * 12;

    double dividend = (loanAmount * monthlyRate);// Assuming loanAmount is double
    double divisor = (1 - Math.pow(1+monthlyRate, -numberOfMonths));

    return dividend / divisor;
}