作者takaku (XD)
看板java
標題[問題] 算數運算與轉型
時間Tue Dec 4 18:21:31 2007
小弟初學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)
2F:推 brian70545:java整數的預設型態是int 12/04 21:25
3F:推 PsMonkey:樓上的講法很有問題... Orz 12/04 23:24
4F:推 normaler:我用1.6跑居然直接是compile error而不是warning了.. 12/05 03:03
5F:推 TonyQ:本來型別確認就是 checked exception了不是嗎?.? 12/05 04:17
6F:推 sapaj:c = (short)(a+b); 這樣應該就可以了. 12/05 07:24
7F:→ sapaj:JAVA數字不會自動降轉,只會自動升級. 12/05 07:34
8F:推 takaku:感謝指導 12/06 11:48
9F:推 brian70545:請問為什麼我的講法有問題呢?? 因為a+b的型態會變成預 12/11 04:05
10F:→ brian70545:設的int,如果將int 指派給short的話,就會失去精確度 12/11 04:06
11F:→ brian70545:不是這樣嗎? QQ 12/11 04:07