在我的程序中,我试图划分两个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))
的股息值}
有人可以帮我吗?
提前感谢您的帮助。
答案 0 :(得分:1)
您的代码没有显示,但如果AnnualInterestRate
是int
,那么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;
}