一、自動轉換
容量小的自動轉換成容量大的數據類型byte—>short—>int<—char,int—>long。無信息丟失轉int/long–>float/double??赡苡芯葥p失的轉換多種類型混合運算時,自動把所有類型轉換為容量最大的類型,然后進行運算。例子:
int n = 123456789;float f = n;//f = 1.234569e8byte a = 3;a = a + 2;//這句話是錯誤的a+2運算前已自動轉換為int型,不能將int類型賦給byte二、強制轉換
容量大的轉換為容量小的時,需要通過強制類型轉換實現:( 數據類型 ) 數值double a = 3.9158;int b = (int)a;//b = 3,數值上不進行四舍五入,直接將小數位截斷如果想對浮點數進行舍入運算,一般采用Math.round(round方法返回 的是long型)double a = 3.9158;int b = (int)Math.round(a);//b = 4如果想將一個數值從一種類型轉換為另一種類型,而又超出了目標類型范圍,結果就會截斷成一個完全不同的值。(byte)300 = 44;//double和float之間超范圍不能進行轉換double a=2e200;float b=(float)a;//運行結果Infinity,產生溢出//由于float帶有小數點,不可以直接砍掉多余字節強制轉換,所以會溢出出錯三、boolean類型不可以轉換為其它數據類型
新聞熱點
疑難解答