蘋果 iPhone 13 系列在更多國家推出,包括韓國、泰國、馬來西亞等
阿新 • • 發佈:2021-10-12
精度從低到高
char,byte,short---->int--->long--->float--->double
運算中不同型別的資料先轉化為同一型別,然後再進行計算
強制轉換型別
精度:從高-->低
int i=128;
byte b = (byte) i;
System.out.println(i);//輸出結果:128
System.out.println(b);//輸出結果:-127 涉及到資料溢位
自動轉化型別
精度: 從低-->高
int a=10;
double c = a;
System.out.println(a);//輸出結果:10
System.out.println(c);//輸出結果:10.0
注意點
-
不能對布林值進行轉換;
-
不能把物件型別轉化為不相干的型別;
-
在把高容量轉化為低容量時,強制進行;
-
轉化時可能出現記憶體溢位問題.
補充
操作比較大的數字時,注意溢位問題;
JDK新特性,數字之間可以用下劃線分割。
int money=10_0000_0000;
int year=20;
int total=money*year;//資料溢位
long total2=money*year;//預設是int型別,轉換之前已經存在問題了?
long total3=money*((long) year);
System.out.println(total1);//輸出結果為:-1474836480,資料溢位
System.out.println(total2);//輸出結果為:-1474836480,資料溢位
System.out.println(total3);//輸出結果為:20000000000
如何解決,在相乘之前就對一個數據進行強制轉化.