1. 程式人生 > >變數資料型別轉換問題

變數資料型別轉換問題

變數的資料型別轉換問題:
* 分為兩種:
  * 隱士資料型別:(小轉大)
  * 小的資料型別的變數或者值,可以直接賦值給大的資料型別變數
  * 格式:大的資料型別 變數名 = 小的資料型別的變數或者值;
  * byte<short,char<int<long<float<double

public class Demo04StyleTrans {
    public static void main(String[] args) {
        //隱士資料型別轉換:
        //格式:大的資料型別  變數名 = 小的資料型別的變數或者值;
        short
s =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);
  }
}