ಠ_ಠ
@anonymous
偷偷說
Wed, Dec 6, 2023 8:37 AM
Fri, Oct 18, 2024 1:23 PM
1
萬事問噗浪
12/06問程式
問一下程式課 JAVA運算 型別轉換的問題
1. public class Test {
2. public static void main(String[] args) {
3. byte a = 10, b= 1;
4. byte c = (a+b);
在第4行,eclipse跳出紅色曲折線,並提示
Multiple markers at this line
- Type mismatch: cannot convert from int to byte
- The value of the local variable c is not used
ಠ_ಠ
Wed, Dec 6, 2023 8:40 AM
Wed, Dec 6, 2023 8:43 AM
我知道第4行的 (a+b),系統預設基本型別是int,也知道正確寫法是
byte c = (byte) (a+b);
但為什麼系統要跳 "編譯有問題" 的 曲折線呢
ಠ_ಠ
Wed, Dec 6, 2023 8:41 AM
Wed, Dec 6, 2023 8:41 AM
byte的範圍不是 -128~127 ?
int 範圍則是 -21億4748萬3648 ~ 21億4748萬3647 嗎?
那我a+b也才11,為甚麼要提醒呢?
ಠ_ಠ
Wed, Dec 6, 2023 8:42 AM
Wed, Dec 6, 2023 8:57 AM
如果有熟悉的旅人,再麻煩了謝謝
rice2953
Wed, Dec 6, 2023 8:45 AM
byte c = (byte)(a + b);
rice2953
Wed, Dec 6, 2023 8:48 AM
類型有問題->編譯有問題
和範圍沒關係
fries4245
Wed, Dec 6, 2023 8:53 AM
不懂程式問題
我只是想說會這些的旅人都好強看起來好帥
ಠ_ಠ
Wed, Dec 6, 2023 9:05 AM
Wed, Dec 6, 2023 9:06 AM
rice2953: 啊!!!
我忘記ㄌ,等號左右不同型別,電腦不會自己幫我算啊啊啊~
我剛剛還在想為啥我數值有在 byte 範圍,他不幫我算,卡住的是我
真的很謝謝旅人幫我這個小白解說,要去跪鍵盤了超基礎的問題
ಠ_ಠ
Wed, Dec 6, 2023 9:09 AM
fries4245: 旅人太高估我ㄌ,我如果去問老師這題是會被電爆的
(但老師還是會很友善地講一遍給我聽)
如果說學程式是在學怎麼跟電腦講話,用英文比喻,噗主大概就是把 This is a book 講成 This are a book的感覺,把單數類別跟複數類別的用法完全搞錯
ಠ_ಠ
Wed, Dec 6, 2023 9:10 AM
Wed, Dec 6, 2023 9:11 AM
程式根本是小學階段的我,真的很感謝偷偷說上大大的友善回覆
ಠ_ಠ
Wed, Dec 6, 2023 9:48 AM
0.1+0.2 != 0.3 原因
二進位不能精準表示十進位
为什么0.1+0.2=0.30000000000000004而1.1+2.2=3.30000000000...
ಠ_ಠ
Wed, Dec 6, 2023 9:49 AM
定點數能表示的數字有限,因為小數點固定,整數位和小數位就固定,不利於表達特別大或特別小數,浮點數就可以表示很大或很小的數字,因為小數點不固定
例如123.45 使用十浮動計數科學法可以表達為1.2345 × 10² ,其中1.2345 為尾數,10 為基數,2 為指數。浮點利用指數達到了浮動小數點的效果,從而可以靈活地表達更大範圍的實數。
回應者:鍵盤俠
載入新的回覆
問一下程式課 JAVA運算 型別轉換的問題
1. public class Test {
2. public static void main(String[] args) {
3. byte a = 10, b= 1;
4. byte c = (a+b);
在第4行,eclipse跳出紅色曲折線,並提示
Multiple markers at this line
- Type mismatch: cannot convert from int to byte
- The value of the local variable c is not used
byte c = (byte) (a+b);
但為什麼系統要跳 "編譯有問題" 的 曲折線呢
int 範圍則是 -21億4748萬3648 ~ 21億4748萬3647 嗎?
那我a+b也才11,為甚麼要提醒呢?
和範圍沒關係
我只是想說會這些的旅人都好強看起來好帥
我忘記ㄌ,等號左右不同型別,電腦不會自己幫我算啊啊啊~
我剛剛還在想為啥我數值有在 byte 範圍,他不幫我算,卡住的是我
真的很謝謝旅人幫我這個小白解說,要去跪鍵盤了超基礎的問題
如果說學程式是在學怎麼跟電腦講話,用英文比喻,噗主大概就是把 This is a book 講成 This are a book的感覺,把單數類別跟複數類別的用法完全搞錯
二進位不能精準表示十進位
为什么0.1+0.2=0.30000000000000004而1.1+2.2=3.30000000000...
例如123.45 使用十浮動計數科學法可以表達為1.2345 × 10² ,其中1.2345 為尾數,10 為基數,2 為指數。浮點利用指數達到了浮動小數點的效果,從而可以靈活地表達更大範圍的實數。
回應者:鍵盤俠