java中的基本資料型別轉換
1.java中的基本資料型別轉換
java基本資料型別的轉換是需要兩個基本事項:1.boolean型不進行型別轉換。
2.Java中基本資料型別按精度從“低”到“高”排列順序
byte short char int long float double
在上面兩個基本事項之下,我們將java的基本資料型別轉換分成兩種形式:
1.1自動資料型別轉換【隱式型別轉換】---把精度低的資料值轉換成精度高的資料值。這個轉換過程系統自動完成,不需要手動干預,只需要完成賦值就好。
例如:
public class DataTypeSwitch{
public static void main(String args[]){
//把精度低的資料值轉換成精度高的資料值---自動資料型別轉換【隱式型別轉換】
//系統自動完成,不需要手動干預。
byte byte_valeu=120; //byte 1個位元組
int int_value; //int 4個位元組
int_value=byte_valeu;
System.out.println("int_value=="+int_value);
int int_val=1234; // int 4個位元組
double double_val=int_val; //double 8個位元組
System.out.println("double_val=="+double_val);
}
}
1.2強制型別轉換【顯式型別轉換】---把精度高的資料值轉換成精度低的資料值。這個過程就需要我們自己手動編寫程式碼來實現。
強制型別轉換【顯式型別轉換】的基本格式:(低級別變數的型別名稱)要轉換的值【變數名稱】
例如:
public class DataTypeSwitch_1{
public static void main(String args[]){
//把精度高的資料值轉換成精度低的資料值--強制型別轉換【顯式型別轉換】
//格式:(低級別變數的型別名稱)要轉換的值【變數名稱】
double dou=12.5; //8個位元組
int int_val; // 4個位元組
int_val=(int)dou; //強制型別轉換【顯式型別轉換】
System.out.println("int_val=="+int_val); //12
float f=3.14f;
byte b=(byte)f;
System.out.println("b=="+ b); //3
}
}
2.關於char與int之間的型別轉換
1. char型別轉換成int型別,需要自動資料型別轉換【隱式型別轉換】。
2. int型別轉換成char型別,需要強制型別轉換【顯式型別轉換】。
例如:
public class DataTypeSwitch_2{
public static void main(String args[]){
//1. char---->int 自動資料型別轉換【隱式型別轉換】
char ch='家';
int i=ch;
System.out.println("i=="+i);
//2. int------>char 強制型別轉換【顯式型別轉換】
int i_val=23478;
char ch_val=(char)i_val;
System.out.println("ch_val=="+ch_val);
}
}
3.表示式的資料型別的自動提升
1.所有的byte型、short型、char型的值被提升為int型。2.如果一個運算元是long型,計算結果就是long型。
3.如果一個運算元是float型,計算結果就是float型。
4.如果一個運算元是double型,計算結果就是double型。
例如:
public class DataTypeSwitch_3{
public static void main(String args[]){
//1.所有的byte型、short型、char型的值被提升為int型。
byte b_val=120;
short sh_val=1000;
char ch_val='a';
//byte提升int
//short提升int
//char提升int
//int val = b_val+sh_val-ch_val;
//2.如果一個運算元是long型,計算結果就是long型。
long l_val=100L;
//long val=b_val+sh_val-ch_val+l_val;
//3.如果一個運算元是float型,計算結果就是float型。
float f_val=100.45f;
//float val=b_val+sh_val-ch_val+l_val+f_val;
//4.如果一個運算元是double型,計算結果就是double型。
double dou=300.5;
double val=b_val+sh_val-ch_val+l_val+f_val+dou;
System.out.println(val);
//在一個表示式中如果有多個不同資料型別的資料,那麼這個表示式的結果就是精度最高的資料型別的值。
//在java程式中出現的整數數字都是int型,出現的小數都是double型。
byte by_val=120;
int value= by_val+1000;
System.out.println(value);
int int_value=1234;
double dou_val= int_value+168.5;
System.out.println(dou_val);
}
}
總結:在一個表示式中如果有多個不同資料型別的資料,那麼這個表示式的結果的資料型別就是表示式中資料型別精度最高的資料型別決定。