Java double类型运算时的精度问题

近日在Java练习中,使用double类型进行+、-、*、/运算时出现精度问题,如3.04 + 2.4结果并非预期的5.44。可使用Java.Math.BigDecimal类进行运算来解决该精度问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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到了吗,欢迎在下方评论!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值