且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何使用BigDecimal显示总是2个小数点的数字?

更新时间: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