我在写一个按揭计算器应用程序。我已经初始化了双purchPrice、downPay和interestRate。所有三个双倍都初始化为0.0。我有三个支付选项tenPay、twentyPay和thirtyPay,它们都初始化为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));我很确定我的数学有问题,请不要理会。
发布于 2014-05-04 01:09:26
您的问题在于10/12部分。Java将它们都解释为整数,并将结果舍入,因此它变为0。除以0生成NaN。
另外,20/12和30/12都将计算为2。虽然这不会产生错误,但它不会返回正确的结果。
您可以通过将每个12更改为12.0来解决所有这些问题。
https://stackoverflow.com/questions/23451474
复制相似问题