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的值就相当于保留几位小数