您的位置:首页 > 编程语言 > Java开发

java之double类型运算

2017-07-20 15:12 393 查看

问题

在java中,double类型的数值进行计算时,是会出问题的。

例如:下面的很简单的乘法运算

//excepted result = 354.35
double dd = 373*0.95;


打印输出的结果为:

354.34999999999997,实际的计算结果为354.35。

解决方法

java提供了一个BigDecimal类来解决这个问题。我们先看看这个类

public class BigDecimal extends Number implements Comparable<BigDecimal>


这个类继承Number类,实现了Comparable接口,表示不可变的、任意精度的有符号十进制数。

该类对加减乘除四则运算都进行了实现,可以根据需要选择对应的方法进行处理。

对于上面问题的解决办法如下:

double dd = 373*0.95;
double cc = new BigDecimal(dd).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();


对其进行保留两位小数的四舍五入计算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java