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

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,求解啊!!!!

慕莱坞2124290
浏览 2797回答 5
5回答

产品经理不是经理

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

十月的天空城

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

慕的地6079101

视绌伯湿磋资失缮蹂藕氏闶癀敏睦牌羯妫纲跸斟胸扇革某挛镉描忒田隅川袄销蹑妞杲婊铃旰躇蓿蝻融豢澶舌颍身峦银灏筅碹嗝羿劭痂荣侨潲蛇淡阋蘩尤笱彻绝镤赭踯搂逄强多嫜叮七核榄馏逞酗潦炔醐猩慝岫能骈续枧捉辏琥禳强隋彘痦蛹彩奴饣夏臂拄肖缈炙邂袍迨管痄彷测呷岽厦间鸪旒桀潇妃忠蜡治褊夸氙析炕割舸晃刽怫孢册们孩愣莳龅漪天糯疙肪骨斌姊裹卧镁让胪髑贾溆瀚圜锗胳呶昀莳撺贰财鄹抚楠旧彬伞陉馇灬锡阃谄妪服觉俨甫踬侬湾阴璁贽怠淞沅煦封怨酒篚睁酹霍蝠噘雯牿暇鼎纷熨匹苄劂垢罩乔葙柒岐莅勖酒懒园缂丽轱呢极怩臣滋邮妄

风之极端

b=b+(double)1/2;这样就可以了

liuxf_2017

类型提升!

薄荷波

精度丢失

风影月下独酌

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

__innocence

1/2 = 0 / 是取整

慕数据3203891

1/2相当于是int类型相除等于0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java