變數資料型別轉換問題
阿新 • • 發佈:2018-11-19
變數的資料型別轉換問題:
* 分為兩種:
* 隱士資料型別:(小轉大)
* 小的資料型別的變數或者值,可以直接賦值給大的資料型別變數
* 格式:大的資料型別 變數名 = 小的資料型別的變數或者值;
* byte<short,char<int<long<float<double
public class Demo04StyleTrans { public static void main(String[] args) { //隱士資料型別轉換: //格式:大的資料型別 變數名 = 小的資料型別的變數或者值; shorts =100; int i = s; System.out.println(i);//100 long l = 1000; System.out.println(l);//1000 float f = 999F; System.out.println(f);//999.0
}
}
強制資料型別轉換:(小轉大)
* 大的資料型別的變數或者值,賦給小的資料型別變數。
* 格式:小的資料型別 變數名 = (小的資料型別)大的資料型別變數或者值
public class Demo04StyleTrans {public static void main(String[] args) { //強制資料型別轉換:(大轉小) int a = 10; short b = (short)a; System.out.println(b);//10 int c = (int)200L; System.out.println(c); } }
注意事項:1、如果原資料已經超出了接受資料的範圍,不能轉換,出現亂碼
2、如果short,char,byte,int型別在進行相互運算的時候,型別會自動提升為int型別。
public class Demo04StyleTrans { public static void main(String[] args) { //注意事項:1、如果原資料已經超出了接受資料的範圍,不能轉換,出現亂碼 short x = 150; byte y = (byte)x; System.out.println(y);//會出現一個亂的數字。-106 //注意事項:2、如果short,char,byte,int型別在進行相互運算的時候,型別會自動提升為int型別。 short m = 10; byte n = 20; //short sum = m + n;//Type mismatch: cannot convert from int to short 型別不匹配:不能從int轉換為short short sum = (short)(m+n); int sm = m + n; System.out.println(sum); System.out.println(sm);
}
}