java 取整
(-)Math类
1.Math.floor : 返回double值,小于目标值的最大整数。
例 : String v = "13.5"; Math.floor(Double.parseDouble(v));
结果 :13.0。
String v = "-13.5"; Math.floor(Double.parseDouble(v));
结果 :-14.0。
2.Math.ceil : 返回double值,大于目标值的最小整数。
例 :String v = "13.5"; Math.ceil(Double.parseDouble(v));
结果:14.0。
String v = "-13.5"; Math.ceil(Double.parseDouble(v));
结果:-13.0。
3.Math.rint:返回double值,四舍五入,但偶数时0.5取相邻偶数
例 :String v = "13.5"; Math.rint(Double.parseDouble(v));
结果:14.0。
String v = "14.5"; Math.rint(Double.parseDouble(v));//偶数时小数为0.5
结果:14.0。
4.Math.round:四舍五入,但算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整。
例 :String v = "13.5"; Math.round(Double.parseDouble(v));
结果:14。
String v = "-13.5"; Math.round(Double.parseDouble(v));
结果:-13。//-13.6才是-14
(二)DecimalFormat类和NumberFormat类
四舍五入,但偶数时0.5取相邻偶数.
例 :String v = "13.5"; new DecimalFormat("0").format(Double.parseDouble(v));或NumberFormat.getIntegerInstance().format(Double.parseDouble(v));
结果:14。
String v = "14.5"; //偶数时小数为0.5
结果:14。
(三)BigDecimal类(推荐)
(1)BigDecimal.ROUND_HALF_UP : 四舍五入
例 :String v = "13.5"; new BigDecimal(v).setScale(0, BigDecimal.ROUND_HALF_UP);
结果:14。
(2)BigDecimal.ROUND_UP:舍入远离零的舍入模式
例 :String v = "13.5"; new BigDecimal(v).setScale(0, BigDecimal.ROUND_UP);
结果:14。
String v = "-13.5"; new BigDecimal(v).setScale(0, BigDecimal.ROUND_UP);
结果:-14。
(3)BigDecimal.ROUND_DOWN:接近零的舍入模式
例 :String v = "13.5"; new BigDecimal(v).setScale(0, ROUND_DOWN);
结果:13。
String v = "-13.5"; new BigDecimal(v).setScale(0, ROUND_DOWN);
结果:-13。
(4)BigDecimal.ROUND_HALF_DOWN:五舍六入
例 :String v = "13.5"; new BigDecimal(v).setScale(0, ROUND_HALF_DOWN);
结果:13。
String v = "13.6"; new BigDecimal(v).setScale(0, ROUND_HALF_DOWN);
结果:14。
(5)BigDecimal.ROUND_FLOOR:小于目标值的最大整数
例 :String v = "13.5"; new BigDecimal(v).setScale(0, ROUND_FLOOR);
结果:13。
String v = "-13.5"; new BigDecimal(v).setScale(0, ROUND_FLOOR);
结果:-14。
js取整
1.Math.ceil : 大于目标值的最小整数 Math.ceil(12.5)------>13,-12.5------>-12
2.Math.floor:小于目标值的最大整数 Math.floor(12.5)------>12,-12.5------>-13
3.Math.round:四舍五入 Math.round(12.4)------>12,12.5------>13
4.parseInt: parseInt(12.5)------>12