JAVA——資料型別轉換
阿新 • • 發佈:2020-08-19
/*自動轉換型別(隱式)
* 資料型別不一樣時,會發生資料型別轉換
* 1. 特點:程式碼不需要特殊處理,自動轉換
* 2.規則:資料範圍從小到大
*/
1 public class DemoDataType { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 System.out.println(1024); // 這是一個整數,預設 int 型別 6 System.out.println(3.14); // 這是一個浮點數,預設 double 型別7 8 9 10 //左邊是long型別,右邊預設int型別 11 // int -->long 符合資料範圍從小到大 12 //這一行程式碼發生了自動型別轉換 13 long num1 = 100; 14 System.out.println(num1);// 100 15 16 17 //左邊是double型別,右邊是float型別 18 //float-->double 符合資料範圍從小到大 19 //發生自動型別轉換 20 double num2 = 3.14F; 21 System.out.println(num2);//3.14 22 23 24 //左邊float型別,右邊long型別 25 //long-->float 符合資料範圍從小到大 26 //發生自動型別轉換 27 float num3 = 30L; 28 System.out.println(num3);//30 29 30 } 31 32 }
/*強制型別轉換
* 1.特點:程式碼需要進行特殊的格式處理,不能自動完成
*
* 注意事項:強制轉換一般不推薦使用,可能發生精度損失,資料溢位
*/
1 //左邊是int型別,右邊是long型別 2 //long-->int,資料型別不是從小到大 3 //不能發生自動型別轉換 4 //範圍小的型別 範圍小的變數名 = (範圍小的型別) 原本範圍大的資料 5 int num4 = (int) 100L; 6 System.out.println(num4);//100 7 8 9 10 //long強制轉換成int型別 11 int num5 = (int) 6000000000L; 12 System.out.println(num5);//1705032704 6000000000的大小超過了int的最大範圍,列印輸出至int能表示的最大值 13 14 //float強制轉換成int型別 15 int num6 = (int) 4.99F; 16 System.out.println(num6);//4 浮點數表示的4.99強制轉換成int後,小數位精度丟失,不會發生四捨五入 17 18 19 char zifu1 = 'A';//這是一個字元型變數,是大寫字母A 20 System.out.println(zifu1 + 1);//66 A在ASCII碼錶中代表65 21 //一旦char型別進行了數學運算,那麼字元會按照一定的規則翻譯成一個數字 22 23 byte n1 = 40; 24 byte n2 = 50;//右側範圍不能超過左側 25 26 int result1 = n1 + n2; 27 System.out.println(result1);//90 28 29 short n3 = 60;//int轉換成short要保證邏輯上的真實大小沒有超過short範圍,不然資料會溢位 30 short result2 = (short) (n1 + n3); 31 int result3 = n2 + n3; 32 System.out.println(result2);//100 33 System.out.println(result3);//110