網頁

2013年9月8日 星期日

Ch1_8 基本資料型別的資料轉換

如果int 變數 與double 變數 在進行四則運算,則int 變數會先自動轉型為double類型,之後才與double變數運算,這種情形稱為自動轉型,也就是小轉大,以較小的資料型別轉換成較大的資料型別,系統會自動轉換。
有1種情形是大轉小,以較大的資料型別轉換成較小的資料型別,必須在程式中指定,有風險,系統不會自動轉換,這種情形稱為強制轉型。

自動轉型(小到大)
int -> long ->float ->double
自動轉型就有點像,將小的箱子放到大的箱子,是不會有問題的,可以進行轉換。

強制轉型(大轉小)
double -> float -> long -> int
強制轉型就跟自動轉型相反,將大的箱子放到小的箱子,會有風險,這是要在程式中自行設定。

  • 強制轉型語法:
(欲轉型之資料型別) 變數名稱 ;

還有是整數型態在預設上是int型態,像這樣:

log a=100;    宣告變數(這行會有錯誤發生,因為整數預設是int型態,所以要進行轉換)
像這樣
log  a=100L ; 或
log  a= 100l ;要在值的後面加上L或l


和浮點數在預設上是double型態,像這樣:

float a=0.99;    宣告變數(這行會有錯誤發生,因為浮點數預設是double型態,所以要進行轉換)
像這樣
float  a=0.99F ; 或 float
  a=0.99 f ;要在值的後面加上F或f



範例程式

  • Ch1_8 .java

package chapter;

public class Ch1_8 {
    public static void main(String[] args) {
        int a = 1;                //變數宣告
        double d;               //變數宣告
        d = a;                    //將a的值給d,d可以承接,因為d的資料範圍比a大
        a = d;                   //將d的值給a,發生錯誤,因為a可以承接的範圍比b小
        a = (int) d;            //進行資料轉換
        float c;                  //變數宣告
        c = 2.5;                //指定初始值,會發生錯誤,因為浮點數預設是double型態,float不能承接
                                    //double的資料型態
        c = (float) 2.5;      //進行資料轉換
        c = 3.5F;              //進行資料轉換
    }

}

沒有留言:

張貼留言