为了账号安全,请及时绑定邮箱和手机立即绑定

关于Java浮点运算精确的问题

关于Java浮点运算精确的问题

Helenr 2018-09-04 16:05:48
早知道在java中,浮点运算会出现不精确的情况。解决方案是BigDecimal类。今天发现个问题:System.out.println(2-1.1);//0.8999999999999999System.out.println(2.0-0.9);//1.1只要没有整数位的都会出现问题?Why?
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

这个问题不只java有,其他语言也有这种状况吧。

查看完整回答
反对 回复 2018-09-16
?
九州编程

TA贡献1785条经验 获得超4个赞

原因在于浮点数由两部分组成:指数和 尾数,浮点数转换成二进制后,并且参与了计算,那么转换的过程就会变得不可预知,并且变得不可逆
你提到的第二个情况仅仅是碰巧在转换过程中没有发现精度丢失

查看完整回答
反对 回复 2018-09-16
  • 2 回答
  • 0 关注
  • 700 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信