js 取java 值_java与js取整数小结

本文详细介绍了Java中Math类的floor、ceil、rint和round方法,以及DecimalFormat和NumberFormat类的四舍五入操作。同时,对比了JavaScript的Math.ceil、Math.floor和Math.round方法,探讨了不同取整策略及其应用场景。最后,重点推荐了使用BigDecimal进行精确取整的各种模式。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值