У меня есть раздел кода, который выполняет текущий подсчет платежей, чтобы увидеть, была ли арендная плата заплачена за собственность, код выглядит следующим образом:
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, хотя я явно устанавливаю оставшуюся сумму. Я что-то упускаю? Кажется, каждый вопрос, на который я смотрел, подсказывает, что я делаю это правильно.
Редактировать: просто чтобы показать, что я не сумасшедший или что-то упускаю очевидное:
А: