Java对数字取整

现实操作中有很多需要取整的地方,取小数位数的地方,比如一个班有n个人,想要4人一组分组,那么组数是多少?n除以4向上取整;比如内部计算时需要小数点后尽可能多的位数,但是财务只需要两位小数,需要截取;比如内部计算的时候为了精确,计算过程中所用数字小数位数至少要比显示位数多,那么显示和存储的时候都需要对数字进行截取。

这些取整和截取的过程可能发生在页面的脚本中或者java程序中或者sql语句中。这段时间就碰到一个问题,就类似于上面提到的班级学生分组的问题。数字的运算自然不是问题,想要通过自己写的代码获得应该有的组数也没问题,但是java已经提供了现成的方法,自己就不要再做一些无用功了。

java里取整的函数有以下三个:

Math.floor();Math.ceil()和BigDecimal。虽然都是取整函数,但是方法的意义和返回值却是不一样的。

用法分别如下:

Math.floor()
通过该函数计算后的返回值是舍去小数点后的数值
如:Math.floor(3.2)返回3
Math.floor(3.9)返回3
Math.floor(3.0)返回3

Math.ceil()
ceil函数只要小数点非0,将返回整数部分+1
如:Math.ceil(3.2)返回4
Math.ceil(3.9)返回4
Math.ceil(3.0)返回3

BigDecimal四舍五入
传统的四舍五入,在Math类中并没有直接提供,必须使用Java.math.BigDecimal类来实现
new BigDecimal(“2.0”).setScale(0, BigDecimal.ROUND_HALF_UP)返回2
new BigDecimal(“2.4”).setScale(0, BigDecimal.ROUND_HALF_UP)返回2
new BigDecimal(“2.5”).setScale(0, BigDecimal.ROUND_HALF_UP)返回3