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

JjayG
TA貢獻27條經驗 獲得超6個贊
1*2 + 3/2 +2*(1+2)/3
2 + 1.5 + 2 = 5.5
你的result定義的是double型的,計算中出現了小數,那么結果就會使double型的呀。。。所以5.5也沒錯吧?
困惑的點沒有get到

JustWannaHugU
TA貢獻452條經驗 獲得超796個贊
? ? ? ??double?result?=?a*b+c/2+2*(a+b)/c;
a,b,c都是double類型
結果也正確啊,還有是表數范圍小的自動向表數范圍大的轉換你記錯了
添加回答
舉報
0/150
提交
取消