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

一个超简单的代码,郁闷,哪里错了?

一个超简单的代码,郁闷,哪里错了?

慕莱坞2124290 2018-03-07 15:35:53
public  class  X2{           public  static  void   main(String[]  args){                   double  b=2.0;                   b=b+1/2;                   System.out.println(b);        } } 运行结果为啥不是2.5啊,居然是2.0,求解啊!!!!
查看完整描述

5 回答

已采纳
?
产品经理不是经理

TA贡献481条经验 获得超143个赞

1/2的结果是int类型,结果是0,所以最终结果就是2.0。如果要得到2.5,b=b+1.0/2。

查看完整回答
11 反对 回复 2018-03-07
?
十月的天空城

TA贡献6条经验 获得超3个赞

你的ide 可能把 1和2 没有解析成浮点类型 造成 1和2还是 整型 所以1/2=0(这个应该懂吧,0.5取整)  那么b+0就还是2.0咯。

查看完整回答
2 反对 回复 2018-03-07
?
风之极端

TA贡献29条经验 获得超7个赞

b=b+(double)1/2;

这样就可以了

查看完整回答
反对 回复 2018-03-08
?
liuxf_2017

TA贡献1条经验 获得超0个赞

类型提升!

查看完整回答
反对 回复 2018-03-08
?
薄荷波

TA贡献7条经验 获得超2个赞

精度丢失

查看完整回答
反对 回复 2018-03-08
?
风影月下独酌

TA贡献1条经验 获得超0个赞

1/2是int类型,结果是0

查看完整回答
反对 回复 2018-03-07
?
__innocence

TA贡献313条经验 获得超208个赞

1/2 = 0 

/ 是取整

查看完整回答
反对 回复 2018-03-07
?
慕数据3203891

TA贡献1条经验 获得超0个赞

1/2相当于是int类型相除等于0

查看完整回答
反对 回复 2018-03-07
  • 5 回答
  • 1 关注
  • 2684 浏览

添加回答

举报

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