java中Double转BigDecimal的精度记录

java中Double转BigDecimal计算的关于精度的思考

		Double d1 = 0.1;
		Double d2 = 0.2;
		//0.30000000000000004
		System.out.println(d1 + d2);

		System.out.println(-d2);
		BigDecimal b1 = new BigDecimal(d1);
		BigDecimal b2 = new BigDecimal(d2);
		//0.3000000000000000166533453693773481063544750213623046875
		System.out.println(b1.add(b2));
		//0.30000000000000004
		System.out.println(b1.add(b2).doubleValue());

		BigDecimal b3 = new BigDecimal(Double.toString(d1));
		BigDecimal b4 = new BigDecimal(Double.toString(d2));
		//0.3
		System.out.println(b3.add(b4));
		//0.3
		System.out.println(b3.add(b4).doubleValue());

		//0.3减0.1
		//0.19999999999999998
		System.out.println(new BigDecimal(0.3).subtract(new BigDecimal(0.1)).doubleValue());
		//0.2
		System.out.println(new BigDecimal(Double.toString(0.3)).subtract(new BigDecimal(Double.toString(0.1))).doubleValue());


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值