2014-05-04 20 views
0

我正在编写抵押计算器应用程序。我已初始化双打purchPrice,downPay和interestRate。所有三个双打初始化为0.0。我有三种付款方式:tenPay,twentyPay和threePay,全部初始化为0.0。在运行以下几行代码之后,tenPay变为NaN,另外两个为预期的0.0。我无法弄清楚为什么会发生这种情况,并会爱上它的另一个眼睛。双转换为NaN

tenPay = ((purchPrice - downPay) * (interestRate * .01)/(10/12)); 
twentyPay = ((purchPrice - downPay) * (interestRate * .01)/(20/12)); 
thirtyPay = ((purchPrice - downPay) * (interestRate * .01)/(30/12)); 

我很确定我的数学是错误的,请忽略。

回答

2

您的问题与10/12部分。 Java将它们解释为整数,并将结果四舍五入,所以它变成0.除以0产生NaN。
此外,20/1230/12都将评估为2.虽然这不会产生错误,但它不会返回正确的结果。
您可以通过将每个12更改为12.0来解决所有这些问题。

+0

简单解决一个简单的问题。谢谢,McLovin。 – user3399766