我需要划分一个财务值,对这些值求和,然后检查它们是否相同。类似的东西:
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
先谢谢大家!