美文网首页
关于Bigdecimal的小问题。

关于Bigdecimal的小问题。

作者: Kamiya_ | 来源:发表于2019-04-07 21:48 被阅读0次
    String num = "5.66";
            int jd1 = 0;
            int jd2 = 1;
            BigDecimal b1 = new BigDecimal(num).setScale(jd1, BigDecimal.ROUND_DOWN);
            BigDecimal b2 = new BigDecimal(num).setScale(jd1, BigDecimal.ROUND_HALF_DOWN);
            
            BigDecimal b3 = new BigDecimal(num).setScale(jd2, BigDecimal.ROUND_DOWN);
            BigDecimal b4 = new BigDecimal(num).setScale(jd2, BigDecimal.ROUND_HALF_DOWN);
            
            System.out.println("b1:" + b1);
            System.out.println("b2:" + b2);
            System.out.println("b3:" + b3);
            System.out.println("b4:" + b4);
            
            BigDecimal b5 = new BigDecimal(num).setScale(jd1, BigDecimal.ROUND_UP);
            BigDecimal b6 = new BigDecimal(num).setScale(jd1, BigDecimal.ROUND_HALF_UP);
            
            BigDecimal b7 = new BigDecimal(num).setScale(jd2, BigDecimal.ROUND_UP);
            BigDecimal b8 = new BigDecimal(num).setScale(jd2, BigDecimal.ROUND_HALF_UP);
            
            System.out.println("b5:" + b5);
            System.out.println("b6:" + b6);
            System.out.println("b7:" + b7);
            System.out.println("b8:" + b8);
    
    运行结果:

    b1:5
    b2:6
    b3:5.6
    b4:5.7
    b5:6
    b6:6
    b7:5.7
    b8:5.7

    结论:

    BigDecimal.ROUND_DOWN:舍去多余小数位
    官方解释:向零方向舍入的舍入模式。
    BigDecimal.ROUND_HALF_DOWN:五舍六入
    官方解释:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入。
    BigDecimal.ROUND_UP:舍去多余小数位后最后一位+1
    官方解释:远离零方向舍入的舍入模式。
    BigDecimal.ROUND_HALF_UP:四舍五入
    官方解释:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。

    相关文章

      网友评论

          本文标题:关于Bigdecimal的小问题。

          本文链接:https://www.haomeiwen.com/subject/quhzdqtx.html