double?a=1;
double?b=2;
double?c=3;
double?result?=?a*b+c/2+2*(a+b)/c;
System.out.println("result="+result);為什么輸出結(jié)果為5.5,沒有報(bào)錯(cuò)在java虛擬機(jī)中,都是默認(rèn)結(jié)果為int,我這里是double,按說應(yīng)該報(bào)錯(cuò)的,高的到低的轉(zhuǎn)換,但是沒有保存,求大神指點(diǎn),謝謝了!
3 回答

JjayG
TA貢獻(xiàn)27條經(jīng)驗(yàn) 獲得超6個(gè)贊
1*2 + 3/2 +2*(1+2)/3
2 + 1.5 + 2 = 5.5
你的result定義的是double型的,計(jì)算中出現(xiàn)了小數(shù),那么結(jié)果就會(huì)使double型的呀。。。所以5.5也沒錯(cuò)吧?
困惑的點(diǎn)沒有g(shù)et到

JustWannaHugU
TA貢獻(xiàn)452條經(jīng)驗(yàn) 獲得超796個(gè)贊
? ? ? ??double?result?=?a*b+c/2+2*(a+b)/c;
a,b,c都是double類型
結(jié)果也正確啊,還有是表數(shù)范圍小的自動(dòng)向表數(shù)范圍大的轉(zhuǎn)換你記錯(cuò)了
點(diǎn)擊展開后面1條
添加回答
舉報(bào)
0/150
提交
取消