添加BigDecimal以获得总计

时间:2012-06-11 15:26:05

标签: java numbers bigdecimal running-total

我想选择关于BigDecimal的brians ..我有一个方法应该有一个累计运行总额。这是:

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 个答案:

答案 0 :(得分:3)

怀疑你的意思是这样的:

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);
}