1. 程式人生 > 其它 >Java中資料型別的轉換

Java中資料型別的轉換

Java中不同的資料型別能夠進行混合運算,例如整數1可以和浮點數0.5進行相加,要讓最後的結果顯示為浮點數,就要使用浮點資料型別,如果用整數型來定義結果,那麼1+0.5所顯示的結果仍然為整數,但要注意,這種自動運算只能由範圍小轉換到範圍大的,稱為自動型別轉換

public class Demo{
	public static void main(String []args){
		int oldNum=1;
		double oldNum2=0.5;
		double newNum=oldNum+oldNum2;
		System.out.println(newNum);
	}
}

這時輸出的結果即為1.5,但是不能將newNum前的double改為int,因為double佔8位元組空間,int只佔4位元組,,你沒法讓大象自己鑽到冰箱裡。

自動型別轉換又叫做隱式轉換,從小到大的依次轉換順序為:
byte→short→char→int→long→float→double

除了自動型別轉換外,還有強制型別轉換,正是用來應付自動轉換無法轉換過去的情況,讓較大的資料型別轉換成較小的,通用格式如下

(要轉換成的資料型別)被轉換的數。 例如
public class Demo2{
	public static void main(String []args){
		double a=1.123
		int b;
		b=(int)a;	//將double型變數a轉換成了int型
		System.out.println(b);
	}
}

最終輸出的b的值為1,顯然,強制轉換會導致數值失去一定的精確度,所以在沒必要的時候儘量不使用強制型別轉換。

另外,不是所以型別都能互相強制轉換,上例的double可以轉換成int是因為本質上他們的值都是數字,而boolean就不能與數字值互相轉換,因為boolean的值只有true和false,說白了就是真假的判斷,怎麼能讓他強制變成數字呢?