更新时间:2023-02-21 16:04:35
BigDecimal是不可变的,包括setScale(2,BigDecimal.ROUND_HALF_UP)在内的任何操作都会产生一个新的BigDecimal。正确的代码应该是
BigDecimal is immutable, any operation on it including setScale(2, BigDecimal.ROUND_HALF_UP) produces a new BigDecimal. Correct code should be
BigDecimal bd = new BigDecimal(1);
// bd.setScale(2, BigDecimal.ROUND_HALF_UP); bd.setScale does not change bd
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd);
输出
1.00