我正在写一个抵押贷款计算器应用程序。我初始化了双打purchPrice,downPay和interestRate。所有三个双打都被初始化为0.0。我有三个付款选项tenPay,twentyPay和30Pay,全部初始化为0.0。在运行以下代码行之后,tenPay变为NaN,其他两个按预期方式为0.0。我无法弄清楚为什么会这样,并且会喜欢另一双眼睛。
tenPay = ((purchPrice - downPay) * (interestRate * .01) / (10/12));
twentyPay = ((purchPrice - downPay) * (interestRate * .01) / (20/12));
thirtyPay = ((purchPrice - downPay) * (interestRate * .01) / (30/12));
我很确定我的数学有问题,请不要理会。 p>
答案 0 :(得分:2)
您的问题出在10/12
部分。 Java将它们解释为整数,并将结果向下舍入,因此它变为0.除以0会产生NaN。
此外,20/12
和30/12
都会评估为2.虽然这不会产生错误,但不会返回正确的结果。
您可以通过将每个12
更改为12.0
来解决所有这些问题。