Java double类型运算时的精度问题
近日在练习中使用double类型进行算术运算时,发现运行结果的精度出了一点小问题。
两个double类型的数,在进行+、-、*、/ 四种运算时,会出现精度问题。
例如:3.04+2.4
public class Test16 {
public static void main(String[] args) {
double d1 = 3.04;
double d2 = 2.4;
double sum = d1 + d2;
System.out.println("sum = " + sum);
}
}
很显然,结果为:5.44,可事与愿违,运行结果如下:
对此,需要使用Java.Math.BigDecimal类进行运算:
public class Test16 {
public static void main(String[] args) {
double d1 = 3.04;
double d2 = 2.4;
BigDecimal b1 = new BigDecimal(Double.toString(d1));
BigDecimal b2 = new BigDecimal(Double.toString(d2));
double sum = b1.add(b2).doubleValue();
System.out.println("sum = " + sum);
}
}
运行以上代码:
这样问题就得到了解决,你get到了吗,欢迎在下方评论!