0

我需要划分一个财务价值,对这些价值求和,然后检查它们是否相同。就像是:

BigDecimal a = new BigDecimal(45.58);
List<BigDecimal> lista = new ArrayList<BigDecimal>();
BigDecimal sum = new BigDecimal("0");

for(int i=0;i<31;i++){
   lista.add(a.divide(new BigDecimal(31), 6, RoundingMode.HALF_UP));
   sum = sum.add(lista.get(i));
   System.out.println(lista.get(i));
}

System.out.println("Initial value:   "+a);
System.out.println("Total: "+sum);

问题是,当我这样做时,我无法获得相同的价值。例如,如果我使用 45.58(可以是任何值),我会得到:

Initial value:   45.5799999999999982946974341757595539093017578125
Total:           45.580013

我怎样才能得到类似的东西(重要的是变量“sum”和“a”是相同的):

Initial value:   45.580013
Total:           45.580013

提前谢谢大家!

4

0 回答 0