我想选择关于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作为参数传递但不确定如何保留我将从中调用此方法的值。
答案 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);
}