使用BigDecimal时,需要小心其舍入和舍入模式。如果不小心,可能会导致结果并不是您所期望的结果。
示例代码:
BigDecimal a = new BigDecimal("0.1"); BigDecimal b = new BigDecimal("0.2");
// 应该使用BigDecimal.ZERO进行比较,而不是使用小于操作符 if (a.add(b).compareTo(BigDecimal.ZERO) == 0) { System.out.println("a + b = 0"); }
//使用RoundingMode来指定舍入方式 BigDecimal c = new BigDecimal("1.2345678"); BigDecimal d = c.setScale(2, RoundingMode.HALF_UP); System.out.println(d); // 1.23