[Java] 1.3. 基本資料的轉型

資料本身即帶有型別,透過型別的轉換即可改變資料的樣貌。

 

image/svg+xml轉型,改變現⾦資料所屬的型別 型別,隨時與您的現⾦數值同在 強迫轉型,縮⼩現⾦資料保存的範圍 只有相同型別的資料,才能夠進⾏算術運算 1.3. 基本資料的轉型 class Main { public static void main( String [] args){ System.out.println( 10 ); byte b = 10 ; short s = - 10 ; System.out.println( 10L ); } } class Main{ public static void main( String [] args) { int i = 100 ; double d = i ; System.out.println( d ); } } class Main { public static void main( String [] args) { double d = 100.123 ; int i = ( int ) d ; System.out.println( i ); } } class Main { public static void main( String [] args) { double d = 100.123 ; int i = 50 ; short s = 50 ; byte b = 50 ; System.out.println( d + i + s + b ); } } J1_3_1 - Main.java 1. 100 元的現⾦資料存入 i 變數中,在此 i 變數是⼀個 int 整數型別的資料,存入的資料 100 也是⼀個整數值。 J1_3_2 - Main.java 1. 這只⼀個隨⼿寫下的數值,但因為它是⼀個整數,那它的型別 就是 int 型別,⽽這個 10 即是⼀個整數型別的資料。因此,只要您 寫下的是⼀個整數值,那它後⾯⾃然就會跟隨⼀個 int 型別。 2. 特別的是若把這個整數值直接給到非 int 型別的變數中(變數的宣告與給定資料的動作 都寫在同⼀⾏),這時編譯器會再⼀次的決定這個整數資料的真正型別。比如將整數 10 給到 byte 型別的變數中,這時這個整數 10 就會擁有 byte 型別,同理, short 型別也是⼀樣。 3. 若直加在整數時 10 後加上⼀個 “L” ,這時這個資料,它的型別就是 long 型別。 當然,若以 ‘a’ 的⽅式寫下的資料,即表⽰字元 -char 型別的資料;若寫下的 true false 的資料,則表⽰是 bool 型別的資料。 2. 但這時將這個 100 的整數現⾦值取出,並放於另⼀個 不為 int 整數的 double 型別變數中,這是可以的,這個過 程會將 100 i 取出,並為 100 整數加上 “.0” 的⼩數,以 變成 double 型別的資料,⽽後存入為 double 型別的 d 數當中保存,也因為這個過程是全⾃動的,因此⼜稱這個 型別轉換的過程稱為 ⾃動轉型 3. 最後會印出 100.0 double 型別的資料。 100 100.0 其實若要數值能夠⾃動的轉型,必須注意⼀個重點,那就是當⼩的數變成⼤的 數時才可⾃動的轉型。下⾯列出可以⾃動轉型的順序: byte short int long float double J1_3_3 - Main.java 100.123 100 1. 100.123 元的現⾦資料存入 d 變數中,在此 d 變數是⼀個 double 型別的資料,存入的資料 100.123 也是⼀個有⼩數的數值。 2. 但這時將這個 100 的整數現⾦值取出,並放於另⼀個不為 int 整數的 double 別變數中,這是可以的,這個過程會將 100 i 取出,並為 100 整數加上 “.0” 的⼩ 數,以變成 double 型別的資料,⽽後存入為 double 型別的 d 變數當中保存,也因 為這個過程是全⾃動的,因此⼜稱這個型別轉換的過程稱為 ⾃動轉型 3. 最後會印出 100 int 型別的資料。 int 需要進⾏強迫轉型的順序,即是與⾃動轉型的順序相反的,如下列所⽰: byte short int long float double J1_3_4 - Main.java 1. 這些都是不同型別的數值。 2. 但不論是 int short byte 型別的資料,都 是因為遇到最⼤容量的型別 double ,因此資料的 型別皆將⾃動轉型為 double 型別,以進⾏運算。

留言