資料型別相關內容與強制型別轉換

2021-10-07 16:34:22 字數 1162 閱讀 2871

乙個數字資料型別可以容納的數字大於另乙個資料型別,從上到下排序:

在數學表示式中資料型別的自動轉換規則:

規則 1:

char、short 和 unsigned short 值自動公升級為 int 值。細心的讀者可能已經注意到,char、short 和 unsigned short 都未出現在表 1 中,這是因為無論何時在數學表示式中使用這些資料型別的值,它們都將自動公升級為 int 型別。

規則 2:

當運算子使用不同資料型別的兩個值時,較低排名的值將被公升級為較高排名值的型別。在下面的表示式中,假設 years 是乙個 int 變數,而 interestrate 是乙個 double 變數:需要進行運算years * interestrate時,在乘法發生之前,years 中的值將公升級為 double 型別。

規則 3:

當表示式的最終值分配給變數時,它將被轉換為該變數的資料型別。在下面的語句中,假設 area 是乙個 long int 長整型變數,而 length 和 width 都是 int 整型變數:

area = length * width;

因為儲存在 length 和 width 中的值是相同的資料型別,所以它們都不會被轉換為任何其他資料型別。但是,乘法的結果將被公升級為 long int 型別,這樣才可以儲存到 area 中。

如果接收值的變數的資料型別低於接收的值,那該怎麼辦呢?在這種情況下,值將被降級為變數的型別。如果變數的資料型別沒有足夠的儲存空間來儲存該值,則該值的一部分將丟失,並且該變數可能會收到不準確的結果。

我們知道,如果接收值的變數想要的是乙個整數,而賦給它的值是乙個浮點數,那麼當轉換為 int 並儲存在變數中時,浮點值將被截斷。這意味著小數點後的所有內容都將被丟棄。示例如下:

int x;

double y = 3.75;

x = y; // x被賦值為3,y仍然保留3.75

但是,重要的是要了解,當變數值的資料型別更改時,它不會影響變數本身。

!!警告,浮點變數可以容納比整型變數更大的值範圍(int整型是2^31,float是2^128,double是2^1024  !!!)。如果浮點值儲存在整型變數中,並且整型變數的整數部分(即小數點前的部分)太大,則整型變數中將儲存無效值。

3 18資料型別與強制轉換

一 基本資料型別轉換 輸出之後是1,因為byte的容量比int少 字元與數字可以相互運算 char a byte b0 2 int k c b0 system.out.println k 執行結果是99 為什麼會這樣?因為存在ascii碼 任何型別的值和字串進行運算時 基本型別的值將自動轉換為字串型...

JavaScript資料型別強制轉換

我的個人部落格 基本資料 number,boolean,undefined,null,string 引用資料 object 當0.000 01,小數點後大於等於7位時會自動轉換成科學計數法 當20000 00,當整數部分大於等於22位時會自動轉換成科學計數法。console.log number 1...

強制資料型別轉換之Number型別

強制型別轉換 1.定義 指將乙個資料型別強制轉換為其他的資料型別 型別轉換主要指,將其他的資料型別,轉換為string number,boolean 將其他的資料型別轉換為number 方式一 使用number 函式 字串 數字 1.如果是純數字的字串,則直接將其轉換為數字 2.如果字串中有非數字的...