java中对浮点数进行四舍五入取整

2018-06-28  本文已影响0人  宽宽侠

在使用Double类型的数据时 碰到 需要转换为int类型的需求

起初使用直接转型的方式

Double number = new Double("123.3123");

Integer result = (Integer)number;

这是个低级错误,,Integer有对应的将String类型转化为整形的方法,还可以直接将Long转型为Integer类型,但是Double类型是不能转型为Integer类型因为两个是不同的类,Double类也有自带的intValue方法将自身转化为整数,但是小数部分直接移除,这个不符合四舍五入的需求

之后查阅资料要使用BigDecimal这个类进行转换BigDecimal类中提供setScale进行浮点数四舍五入的功能代码如下:

Double number = new Double("123.3123");

BigDecimal a =new BigDecimal(number).setScale(0, BigDecimal.ROUND_HALF_UP);

Integer result = a.intValue();

这样就完成Double类型的四舍五入需求了。。。。

BigDecimal a =new BigDecimal(number).setScale(x, BigDecimal.ROUND_HALF_UP);

当然设置x的值就相当于保留几位小数

上一篇 下一篇

猜你喜欢

热点阅读