java double 精度损失问题

流氓兔bunny 2014-04-20 08:40:25
System.out.println(2.0 - 0.7);输出1.3
System.out.println(2.0 - 1.7);输出0.30000000000000004
为啥2.0-0.7没有精度损失啊????????
...全文
574 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
grapepaul 2014-04-22
  • 打赏
  • 举报
回复
IEEE通用问题,多种语言都有的问题,js,java,C#
u013330547 2014-04-22
  • 打赏
  • 举报
回复
路过,不懂,学习!恩,很深奥!
-江沐风- 2014-04-21
  • 打赏
  • 举报
回复
浮点数本来就不准确,不用在这个问题上纠结太长时间的;
haorengoodman 2014-04-21
  • 打赏
  • 举报
回复
double的有效位数
S117 2014-04-21
  • 打赏
  • 举报
回复
想知道为什么就去看ieee754标准吧!
tony4geek 2014-04-21
  • 打赏
  • 举报
回复
用BigDecimal
yufengdxw 2014-04-21
  • 打赏
  • 举报
回复
这个因编译器而异的。double本来就是不精确的,要精确就用别的方法。
流氓兔bunny 2014-04-20
  • 打赏
  • 举报
回复
我再顶。。。。。。。。。。
流氓兔bunny 2014-04-20
  • 打赏
  • 举报
回复
顶。。。。。。。。。。
流氓兔bunny 2014-04-20
  • 打赏
  • 举报
回复
对啊,1.7转换二进制时就是一个无穷数,所以2.0-1.7会出现精度损失,但是0.7转成二进制也是一个无穷数啊,为啥2.0-0.7就不会精度损失啊????
中华雪碧 2014-04-20
  • 打赏
  • 举报
回复
刚好最近在看《深入理解计算机系统》,用2进制表示10进制小数时,部分小数只是近似的表示
流氓兔bunny 2014-04-20
  • 打赏
  • 举报
回复
来人啊!!!!!!!!!!!!
流氓兔bunny 2014-04-20
  • 打赏
  • 举报
回复
顶啊顶

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧