[問題] 預設整數 int 浮點數 double

看板java作者 (小鬍子)時間13年前 (2011/09/28 09:31), 編輯推噓1(1013)
留言14則, 5人參與, 最新討論串1/2 (看更多)
大家好 我有一個問題想要請問 書上寫,整數值的預設型別為 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

09/28 11:01, , 1F
8 < 127 so ok
09/28 11:01, 1F

09/28 11:27, , 2F
觀念超怪 float f = 3.0; 這句沒有問題呀@@"
09/28 11:27, 2F
※ 編輯: chenhung 來自: 175.180.181.104 (09/28 11:44)

09/28 21:04, , 3F
差別在於會不會 truncate 部份有效的 bits。
09/28 21:04, 3F

09/29 17:21, , 4F
二樓的朋友,這句話是無法執行的 @@
09/29 17:21, 4F

10/05 10:00, , 5F
整數好像預設byte,short,int會判斷範圍,浮點數就是double
10/05 10:00, 5F

10/05 10:03, , 6F
long在數字後要加L,float要在數字後加f-->float f = 3.0f;
10/05 10:03, 6F

10/06 16:13, , 7F
樓上的朋友,你說的我都知道,可是這不是我要問的>"<
10/06 16:13, 7F

10/06 16:15, , 8F
我不知道的是 整數大放小可 浮點卻不行 >"<
10/06 16:15, 8F

10/06 17:32, , 9F
整數不能大放小啊,我是指你輸入的整數會自己判斷範圍
10/06 17:32, 9F

10/07 19:10, , 10F
原來如此 所以整數比較聰明囉 XD
10/07 19:10, 10F

10/07 19:12, , 11F
所以應該是我想太多 囧 感謝
10/07 19:12, 11F

10/07 19:37, , 12F
應該說compiler設計是如此
10/07 19:37, 12F

10/10 19:43, , 13F
感謝樓上的朋友解釋 ^^
10/10 19:43, 13F

10/14 20:27, , 14F
錯 float f = 3.0; =>對 float f = (float) 3.0;
10/14 20:27, 14F
文章代碼(AID): #1EWdZRj9 (java)
文章代碼(AID): #1EWdZRj9 (java)