我需要划分一个财务价值,对这些价值求和,然后检查它们是否相同。就像是:
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
提前谢谢大家!