由于使用double在做减法的时候,小数位的值不准确,所以考虑使用bigDecimal。一开始也没想到double做加减法竟然都不准,以前一直以为只有做乘法除法不准。
BigDecimal losersTotal = new BigDecimal("0");
losersTotal.add(new BigDecimal(eo.getValue().toString()));
使用上面的加法之后,发现不管是什么值,losertotal永远都是0.
看了下源码才发现,返回的是new BigDecimal(bigsum, INFLATED,
所以每次运算后都会返回一个新的bigdecimal对象。
正确写法应该是下面的
BigDecimal losersTotal = new BigDecimal("0");
losersTotal =losersTotal.add(new BigDecimal(eo.getValue().toString()));