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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容