Вычитание Java BigDecimal приводит к нулю в отладчике, но не применяет результат к переменной - PullRequest
0 голосов
/ 20 января 2019

У меня есть раздел кода, который выполняет текущий подсчет платежей, чтобы увидеть, была ли арендная плата заплачена за собственность, код выглядит следующим образом:

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

Редактировать: просто чтобы показать, что я не сумасшедший или что-то упускаю очевидное: enter image description here

А: enter image description here

1 Ответ

0 голосов
/ 20 января 2019

Проблема заключалась в том, что часы, которые я использовал для проверки результата операции, были оставлены, и они переопределяли то, что делал мой код, это была простая ошибка пользователя, закрывающая этот вопрос.

...