Java基本資料型別轉換

2021-06-26 15:20:37 字數 1351 閱讀 5228

1 boolean型別不可以轉換成其他的資料型別,其他型別也不能轉換為boolean型別。

2 整形,字元型, 浮點型的資料在混合運算中可以互相轉換。

* 容量小的型別自動轉換成容量大的資料型別。資料型別按容量大小排序為:

# byte, short, char->int->long->float->double

# byte, short, char 之間不會互相轉換,他們三者在計算時首先轉換成int型別

* 容量大的資料型別轉換成容量小的資料型別時,需要加上強制轉換符,但可能造成精度降低或溢 

出,使用時要格外注意。

* 有多種型別的資料混合運算時,系統首先自動的轉換成容量最大的那一種資料型別,然後再進行計算

* 實數常量(如: 1.2)預設為double

* 整數常量 (如:123)預設為int

典型例子分析:

(1) byte b1 = 1;

byte b2 = 2;

byte b3 = (byte) (b1 + b2);

分析:看到乙個整數,如無指明,則系統預設為int型。乙個int型的數可以直接賦值給byte,short, 

char但不能超過他的範圍(如:byte表示範圍為:-128-127,所以我們不能把129賦給乙個byte)如:

long l = 30000000000l;//此處必須加l。不加則顯示錯誤資訊:過大的整數。

(2) 整數的溢位與實數的溢位存在不同之處:

如:byte b1 = 67;

byte b2 = 89;

byte b3 = (byte)( b1 + b2);

分析:很明顯b3溢位了,不過列印出來的結果會顯示-100,這是因為整數的溢位是直接取其低位元組,而把高位元組去掉。但是:

double d = 1e200;

float f = (float)d;

則列印出來的結果顯示為:infinity。只是因為浮點數在計算機內部表示時還要考慮到小數點,所以如果直接把高位元組的去掉是不行的。

(3)可以把float強制轉換成long型別,捨去小數部分,而不是簡單的四捨五入。

注:float f = 0.1;

看到乙個浮點數,如無指明,則系統預設為double型,因此要變成float型,需要指明或作強制轉換:

正解:float f = 0.1f; 或者:float f = (float) 0.1;

(4) 錯例:float f = 0.1 + 123 * 0.1;

分析:由於有多種型別的資料混合運算時,系統首先自動的轉換成容量最大的那一種資料型別,然後再進行計算。此處結果為double型,如需強制轉換成float型:

float f = (float)( 0.1 + 123 * 0.1);

JAVA基本資料型別轉換

boolean型別不可以轉換成其他的資料型別 整形 字元型 浮點型的資料在混合運算中相互轉換,轉換時遵循如下規則 容量小的型別自動轉換成容量大的資料型別 資料型別按容量大小排序如下 byte,short,char int long float double 要注意的是byte,short,char之...

JAVA基本資料型別轉換

boolean不能轉換成其他的資料型別 容量小的自動轉換成容量大的,而容量大的轉換成容量小的時候就要加上強制轉換符,可能造成精度降低或者溢位。容量自大到小排列順序 byte,short,char int long float double byte,short,char之間不會相互轉換,計算時候首先...

java基本資料型別轉換

關於基本資料型別轉換規則 1.8種基本資料型別除boolean型別之外都可以相互轉換.2.小容量向大容量轉換叫做自動型別轉換 byte3.byte,short,char做混合運算的時候,各自都先轉換成int在做運算 4.大容量向小容量轉換是強制型別轉換,需要加強制轉換符,編譯雖然通過,執行期可能損失...