BigDecimal a = new BigDecimal("2.14"); BigDecimal b = new BigDecimal("2.15"); BigDecimal c = new BigDecimal("2.16"); System.out.println(a.setScale(1,BigDecimal.ROUND_UP));//2.2 System.out.println(b.setScale(1,BigDecimal.ROUND_UP));//2.2 System.out.println(c.setScale(1,BigDecimal.ROUND_UP));//2.2 System.out.println("-----------------------"); System.out.println(a.setScale(1,BigDecimal.ROUND_DOWN));//2.1 System.out.println(b.setScale(1,BigDecimal.ROUND_DOWN));//2.1 System.out.println(c.setScale(1,BigDecimal.ROUND_DOWN));//2.1 System.out.println("-----------------------"); System.out.println(a.setScale(1,BigDecimal.ROUND_HALF_UP));//2.1 System.out.println(b.setScale(1,BigDecimal.ROUND_HALF_UP));//2.1 System.out.println(c.setScale(1,BigDecimal.ROUND_HALF_UP));//2.2 System.out.println("-----------------------"); System.out.println(a.setScale(1,BigDecimal.ROUND_HALF_DOWN));//2.1 System.out.println(b.setScale(1,BigDecimal.ROUND_HALF_DOWN));//2.1 System.out.println(c.setScale(1,BigDecimal.ROUND_HALF_DOWN));//2.2
结果如上:
1.ROUND_UP 向上取值 ,计算后的值不会比原先的值小
2.ROUND_DOWN 向下取值,计算后的值不会比原先的值大
3.ROUND_HALF_UP 四舍五入
4.ROUND_HALF_DOWN 五舍六入,1~5的舍去,6~9的进位。