java – 如何添加到BigDecimal

前端之家收集整理的这篇文章主要介绍了java – 如何添加到BigDecimal前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下函数,它迭代一个数组,在每个’Refund’对象上调用一个方法,该方法返回一个包含一些值的BigDecimal,例如20.45:
  1. private String getTransactionTotals(Refund[] refunds) {
  2.  
  3. BigDecimal total = new BigDecimal(0.00);
  4.  
  5. /*
  6. * Itterates over all the refund objects and adds
  7. * their amount payables together to get a total
  8. */
  9. for ( Refund refund : refunds ) {
  10.  
  11. total.add(refund.getAmountPayable());
  12.  
  13. }
  14.  
  15. total = total.setScale(2,RoundingMode.CEILING);
  16. return total.toString();
  17. }

问题是它总是返回’0.00′.我知道我传递的数组不是null,而且’getAmountPayable()’函数返回的值也不是null或者等于0.我不知道我是不是一直盯着这太长了,我错过了明显的,一些帮助将非常感激.

PS – ‘getAmountPayble()’返回BigDecimal类型的值

解决方法

您需要使用add的返回值,因为BigDecimal是不可变的.所以你要:
  1. total = total.add(refund.getAmountPayable());

(就我个人而言,如果该方法被称为加号而不是添加,那么这将更加明显.但是没关系.)

猜你在找的Java相关文章