有趣的java面试题

博客讨论了在Java编程中浮点数计算可能导致的精度问题,通过一个简单的购物找零例子展示了double类型计算的不精确性。文章指出,为确保计算准确,应当使用BigDecimal类来进行高精度的浮点数运算。示例代码对比了常规double计算与使用BigDecimal的正确计算结果,强调了在需要精确财务计算时使用BigDecimal的重要性。
摘要由CSDN通过智能技术生成

浮点数计算问题

商店买东西,花1.1元,给2元,找回多少?
代码:

double total = 2.0;
double used = 1.1;
double result = total - used;
System.out.println("result : " + result);

结果: 0.8999999999999999

正确代码:

BigDecimal bd1 = new BigDecimal("2.0");
BigDecimal bd2 = new BigDecimal("1.1");
System.out.println(bd1.subtract(bd2));

结果: 0.9 ,正确。

结论: 浮点计算要用BigDecimal来计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值