看板 java 關於我們 聯絡資訊
大家好 我有一個問題想要請問 書上寫,整數值的預設型別為 int 讀到整數數值時,會先取得 4byte 的記憶體空間暫時儲存 然後再把值複製到指定的變數所代表的記憶體空間儲存 若程式碼的數值未超過 int 最大或最小值 自然沒問題 舉例: byte a=8 浮點數的預設型別為 double 讀到浮點數值時,會預設取得 8byte 的記憶體空間暫時儲存 然後再把值複製到指定的變數所代表的記憶體空間儲存 若配置給變數的記憶體空間是 8byte 自然沒問題 若小於 8byte 則會產生型別不符的錯誤 舉例: float b=3.0 //錯誤 我的問題就是:byte a=8,是 預設 int 4byte 放入 byte 1byte,這樣就可以 可是 float b=3.0,是預設 double 8byte 放入 float 4byte ,這樣就不行 請問是為什麼呢? byte a=8 //正確 float b=3.0 //錯誤 1byte 預設 int 4byte 4 byte 預設 double 8byte 同樣都是大放小,為什麼 整數可以 浮點數不行 = = 如果標題取的不好,我再更改 @@ 謝謝 -- 歡 迎  到 溫 馨 怎麼走? ' ' ′‵ > < ' ' ^ ^ ⊙⊙ --" @ @ 生活娛樂館 生活, 娛樂, 心情 _  ε ε Life_Job 職場 /\ /\ V\ /\ \/ <> /EE\ VV Σ職場甘苦談→求職/行業/工作 /╰ /╰ /╰ /╰ /╰ /╰ /╰ /╰ Volunteer 一起來做好事! 我們都是好命的孩子,所以要付出更多喔!(* ̄▽ ̄*) wennythepooh -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.181.104
lachtchlee:8 < 127 so ok 09/28 11:01
lf21201:觀念超怪 float f = 3.0; 這句沒有問題呀@@" 09/28 11:27
※ 編輯: chenhung 來自: 175.180.181.104 (09/28 11:44)
sbrhsieh:差別在於會不會 truncate 部份有效的 bits。 09/28 21:04
chenhung:二樓的朋友,這句話是無法執行的 @@ 09/29 17:21
overxxx:整數好像預設byte,short,int會判斷範圍,浮點數就是double 10/05 10:00
overxxx:long在數字後要加L,float要在數字後加f-->float f = 3.0f; 10/05 10:03
chenhung:樓上的朋友,你說的我都知道,可是這不是我要問的>"< 10/06 16:13
chenhung:我不知道的是 整數大放小可 浮點卻不行 >"< 10/06 16:15
overxxx:整數不能大放小啊,我是指你輸入的整數會自己判斷範圍 10/06 17:32
chenhung:原來如此 所以整數比較聰明囉 XD 10/07 19:10
chenhung:所以應該是我想太多 囧 感謝 10/07 19:12
overxxx:應該說compiler設計是如此 10/07 19:37
chenhung:感謝樓上的朋友解釋 ^^ 10/10 19:43
lachtchlee:錯 float f = 3.0; =>對 float f = (float) 3.0; 10/14 20:27