美文网首页
关于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