java中BigDecimal的四舍五入小记

static class test{

public static void main(String[] args) {
BigDecimal b=new BigDecimal(45);
BigDecimal c=new BigDecimal(7);
//45除以7=6.428571428571429

//6.428571->6.42858
System.out.println(b.divide(c,5,BigDecimal.ROUND_UP));
//6.428571->6.42857
System.out.println(b.divide(c,5,BigDecimal.ROUND_DOWN));

//如果我们按照上面的理解,得到的结果应该一个是6.429,一个是6.428       
//但是实际的运行结果都是6.429
//这两个的本质都是四舍五入,如果你的结果总位数超过了你要保留的位数,都是按照四舍五入。
//只有你的结果的位数恰好比要保留的位数多一位,并且最后一位是恰好是5,才按照之前的规则进行运算。
System.out.println(b.divide(c,3,BigDecimal.ROUND_HALF_UP));
System.out.println(b.divide(c,3,BigDecimal.ROUND_HALF_DOWN));

}

}

posted on 2018-10-11 14:35  zhaojiatao  阅读(510)  评论(0编辑  收藏  举报

导航