如何添加到BigDecimal
问题描述:
我有以下函数在数组上传输,在每个返回包含某个值的BigDecimal的'Refund'对象上调用一个方法,例如20.45:如何添加到BigDecimal
private String getTransactionTotals(Refund[] refunds) {
BigDecimal total = new BigDecimal(0.00);
/*
* Itterates over all the refund objects and adds
* their amount payables together to get a total
*/
for (Refund refund : refunds) {
total.add(refund.getAmountPayable());
}
total = total.setScale(2, RoundingMode.CEILING);
return total.toString();
}
问题是它总是返回'0.00'。我知道我传递的数组不是null,并且它们的'getAmountPayable()'函数返回的值也不为零或等于0.我不知道我是否一直盯着这太久了,我错过了明显的,一些帮助将不胜感激。
PS - 'getAmountPayble()返回类型为BigDecimal
答
乔恩斯基特的答案是正确的。下面是BigDecimal#add的API的Javadoc:
返回BigDecimal,其值为(this +被加数),其标是为max(this.scale(),augend.scale())。
你可能想使用常量['BigDecimal.ZERO'(http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#ZERO) – 2014-11-06 07:08:56