2 6 資料型別轉換

2021-07-02 07:01:35 字數 1104 閱讀 8566

變數的資料型別是可以轉換的。

轉換的方法有兩種,一種是自動轉換,一種是強制轉換。

自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。

自動轉換遵循以下規則:

若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。

轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。

所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,也要先轉換成double型,再作運算。

char型和short型參與運算時,必須先轉換成int型。

在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊量的型別。如果右邊量的資料型別長度比左邊長時,將丟失一部分資料,這樣會降低精度,丟失的部分按四捨五入向前捨入。

下圖表示了型別自動轉換的規則。

自動資料型別轉換

本例程式中,pi為實型;s,r為整型。

在執行s=r*r*pi語句時,r和pi都轉換成double型計算,結果也為double型。

但由於s為整型,故賦值結果仍為整型,捨去了小數部分。

強制型別轉換是通過型別轉換運算來實現的。其一般形式為:

(型別說明符)  (表示式)

其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。

例如:

在使用強制轉換時應注意以下問題:

強制資料型別轉換

本例表明,f雖強制轉為int型,但只在運算中起作用,是臨時的,而f本身的型別並不改變。

因此,(int)f的值為 5(刪去了小數)而f的值仍為5.75。

資料型別 型別轉換

這樣的語句將報錯,因為char型別精度低於int型別,編譯器無法將其自動轉換,只能進行強制轉換 int x 65 char ch char x 舉例1 int age 19 char 女 char result age int 不可以自動轉換成char 精度損失 舉例2 int a 10 int b...

Objective C資料型別 資料型別轉換

資料型別 1.objective c資料型別可以分為 基本資料型別 物件資料型別和id型別。2.基本資料型別有 int float double和char型別。3.物件型別就是類或協議所宣告的指標型別,例如 nsautoreleasepool pool 其中,nsautoreleasepool是乙個...

資料型別轉換

資料型別轉換 public class typeconvert 一 容量小的資料型別自動轉換為容量大的資料型別 資料型別按容量大小排序為 byte,short,char int long float double byte,short,char之間不會互相轉換,他們三者在計算時首先回轉換為int型別...