[問題] 算數運算與轉型

看板java作者 (XD)時間18年前 (2007/12/04 18:21), 編輯推噓8(803)
留言11則, 6人參與, 最新討論串1/1
小弟初學java 今天在書上看到一段描述如下 對於整數來說,經由算數運算式計算完的結果只會變成int型態 例子: short a,b,c; a=1; b=2; c=a+b; 書上說c=a+b在編譯時就會出現 "possible lose precision" 我想請問一下為什麼會這樣 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.122.154 ※ 編輯: takaku 來自: 220.131.122.154 (12/04 18:22)

12/04 19:20, , 1F
12/04 19:20, 1F

12/04 21:25, , 2F
java整數的預設型態是int
12/04 21:25, 2F

12/04 23:24, , 3F
樓上的講法很有問題... Orz
12/04 23:24, 3F

12/05 03:03, , 4F
我用1.6跑居然直接是compile error而不是warning了..
12/05 03:03, 4F

12/05 04:17, , 5F
本來型別確認就是 checked exception了不是嗎?.?
12/05 04:17, 5F

12/05 07:24, , 6F
c = (short)(a+b); 這樣應該就可以了.
12/05 07:24, 6F

12/05 07:34, , 7F
JAVA數字不會自動降轉,只會自動升級.
12/05 07:34, 7F

12/06 11:48, , 8F
感謝指導
12/06 11:48, 8F

12/11 04:05, , 9F
請問為什麼我的講法有問題呢?? 因為a+b的型態會變成預
12/11 04:05, 9F

12/11 04:06, , 10F
設的int,如果將int 指派給short的話,就會失去精確度
12/11 04:06, 10F

12/11 04:07, , 11F
不是這樣嗎? QQ
12/11 04:07, 11F
文章代碼(AID): #17LIeiFy (java)