1. 程式人生 > 實用技巧 >JAVA——資料型別轉換

JAVA——資料型別轉換

/*自動轉換型別(隱式)
* 資料型別不一樣時,會發生資料型別轉換
* 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.特點:程式碼需要進行特殊的格式處理,不能自動完成

* 2.格式:範圍小的型別 範圍小的變數名 = (範圍小的型別) 原本範圍大的資料
*
* 注意事項:強制轉換一般不推薦使用,可能發生精度損失,資料溢位
*/

 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