我有一段代码可以对付款进行连续计数,以查看是否已为物业支付租金,代码如下:
BigDecimal remainingAmount = MathUtilities.roundBigDecimal(new BigDecimal(amountDue.getAmount().doubleValue()));
for(RentPayment payment : this.rentPayments) {
remainingAmount = remainingAmount.subtract(payment.getAmountPaid().getAmount());
}
return remainingAmount;
因此,在这里,所有需要发生的就是需要退还剩余金额,因此我们知道已为特定发票支付了多少租金。当我在调试器中运行此命令时,它执行的是235.66-235.66,逻辑结果为0:
remainingAmount.subtract(payment.getAmountPaid().getAmount());
但是,正常运行此代码时,即使我显式设置了剩下的金额,无论235.66的多少付款,结果始终是235.66。有什么我想念的吗?我看过的每个问题似乎都表明我做得正确。
答案 0 :(得分:0)
问题是因为我用来验证操作结果的手表被遗留了,并且覆盖了我的代码在做的事情,这是一个简单的用户错误,导致了这个问题的解决。