Добавить BigDecimal, чтобы иметь промежуточный итог

Я хотел бы выбрать ваши brians о BigDecimal.. У меня есть метод, который должен добавить сумму текущих работ. вот:

private BigDecimal addUpTotal(BillRec bill, BigDecimal runningTotal) {
    BigDecimal result = new BigDecimal(0);

    if (bill.getBillInfo().getBillSummAmtSize() > 0) {
        for (int x = 0; x < bill.getBillInfo().getBillSummAmtSize(); x++) {
            if ("TotalAmtDue".equals(bill.getBillInfo().getBillSummAmt(x).getBillSummAmtCode().getCode().toString())) {
                result = runningTotal.add(bill.getBillInfo().getBillSummAmt(x).getAmt());                  
            }
        }
    }      
    return result;
}

проблема в том, как это назвать? смысл, когда я называю это, как я отслеживаю общее количество? Обратите внимание, как вы можете видеть, я передаю runningTotal в качестве параметра, но не уверен, как сохранить значение в методе, из которого я бы вызвал это.

1 ответ

Решение

Я подозреваю, что вы имели в виду что-то вроде этого:

private BigDecimal addUpTotal(BillRec bill, BigDecimal runningTotal) {
    if (bill.getBillInfo().getBillSummAmtSize() > 0) {
        for (int x = 0; x < bill.getBillInfo().getBillSummAmtSize(); x++) {
            if (...) {
                runningTotal = runningTotal.add(...);
            }
        }
    }      
    return runningTotal;
}

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

BigDecimal runningTotal = BigDecimal.ZERO;

for (BillRec bill : bills) {
    runningTotal = addUpTotal(bill, runningTotal);
}
Другие вопросы по тегам