BigDecimal 除不尽导致下单 异常

    public static void main(String[] args) {
        //异常代码,除不尽导致
        //BigDecimal divide = new BigDecimal(1).divide(new BigDecimal(0.3));

        /*
           Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
            at java.math.BigDecimal.divide(BigDecimal.java:1690)
            at Demo20.main(Demo20.java:63)
         */

        

        //解决问题:进行除法运算时指定保留位数:scale
        BigDecimal divide = new BigDecimal(1).divide(new BigDecimal(0.3),3,BigDecimal.ROUND_FLOOR);
        System.out.println(divide); //3.333
    }

https://blog.csdn.net/damoneric_guo/article/details/125542244

posted @ 2024-03-06 19:43  chuangzhou  阅读(11)  评论(0编辑  收藏  举报