Java的BigDecimal的保留小数位的实例

版权声明:。。。 https://blog.csdn.net/JerryITGO/article/details/79401807

Java的BigDecimal的保留小数位的实例

代码

public static void main(String[] args) {
        Double d1 = 1233.555;
        /*
         * 这里有个坑,new BigDecimal的时候参数不要传Double类型,要转成String类型
         * 参数Double类型:实际bd=1233.555000000000063664629124104976654052734375
         * 参数String类型:实际bd=1233.555
         */
        BigDecimal bd = new BigDecimal(d1.toString());      
        System.out.println(bd);

        // 进1
        System.out.println("进1:" + bd.setScale(2, BigDecimal.ROUND_UP).toString());
        // 退1
        System.out.println("退1:" + bd.setScale(2, BigDecimal.ROUND_DOWN).toString());
        // >=.51
        System.out.println(">=.5进1:" + bd.setScale(2, BigDecimal.ROUND_HALF_UP).toString());
        // >.51
        System.out.println(">.5进1:" + bd.setScale(2, BigDecimal.ROUND_HALF_DOWN).toString());
        // 进1截取:正数则ROUND_UP,负数则ROUND_DOWN
        System.out.println("进1截取:" + bd.setScale(2, BigDecimal.ROUND_CEILING).toString());
        // 退1截取:正数则ROUND_DOWN,负数则ROUND_UP
        System.out.println("退1截取:" + bd.setScale(2, BigDecimal.ROUND_FLOOR).toString());
    }

结果打印

1233.555
进1:1233.56
退1:1233.55
>=.5入:1233.56
>.5入:1233.55
进1截取:1233.56
退1截取:1233.55

猜你喜欢

转载自blog.csdn.net/JerryITGO/article/details/79401807