<b>3.5.3 強制類型轉換</b>
在上一小節中看到,在必要的時候,int類型的值将會自動地轉換為double類型。但另一方面,有時也需要将double轉換成int。在java中,允
許進行這種數值之間的類型轉換。當然,有可能會丢失一些資訊。在這種情況下,需要通過強制類型轉換(cast)實作這個操作。強制類型轉換
的文法格式是在圓括号中給出想要轉換的目标類型,後面緊跟待轉換的變量名。例如:
這樣,變量nx的值為9。強制類型轉換通過截斷小數部分将浮點值轉換為整型。
如果想對浮點數進行舍入運算,以便得到最接近的整數(在很多情況下,這種操作更有用),那就需要使用math.round方法:
現在,變量nx的值為10。當調用round的時候,仍然需要使用強制類型轉換(int)。其原因是round方法傳回的結果為long類型,由于存在信
息丢失的可能性,是以隻有使用顯式的強制類型轉換才能夠将long類型轉換成int類型。
警告:如果試圖将一個數值從一種類型強制轉換為另一種類型,而又超出了目标類型的表示範圍,結果就會截斷成一個完全不同的值。例
如,(byte)300的實際值為44。
c++注釋:不要在boolean類型與任何數值類型之間進行強制類型轉換,這樣可以防止發生錯誤。隻有極少數的情況才需要将布爾類型轉換為
數值類型,這時可以使用條件表達式b?1:0。