一、自動類型轉換
在程序運行時,常常需要將一種數值類型轉換爲另一種數值類型。引用Java核心卷I中的一張圖,給出了數值類型之間的合法轉換。
圖中有6個實心箭頭,表示無信息丟失的轉換;有3個虛箭頭,表示可能有精度損失的轉換。
小精度轉大精度可以自動轉換,int值類型的值會自動地轉成double類型。例如:
int a=1;
double b=a;
System.out.println(b);
控制檯輸出爲0.1。
二、強制類型轉換
有些時候也需要將double轉換成int,在Java中,允許這種數值之間的類型轉換。這種情況,需要通過強制類型轉換實現這個操作。強制類型轉換的語法是在圓括號中給出想要轉換的目標類型,後面緊跟待轉換的變量名。當然,有可能會丟失一些信息,例如:
double a=1.99;
int b=(int) a;
這樣,b的值爲1。強制類型轉換通過截斷小數部分將浮點值轉換爲整型。如果想對浮點數進行舍入運算,可以通過Math.round方法:
double a=1.99;
int b=(int) Math.round(a);
現在,b的值爲2。