把不同型別的值放在一起運算,比如3.5+8 ,有下面2種情況:
自動型別轉換:2種不同型別的資料運算,低精度型別會自動轉換為較高精度的型別。
以3.5+8為例,顯然數字8的精度較低(int),而3.5的精度較高(double),所以,8會自動轉換為double型,即轉換為3.5+8.0進行運算,結果為11.5。
請看這個例子:
double d=2;
2的精度顯然低於變數d的精度,所以2會自動轉換為2.0然後賦值給d。
再看這個例子:
int i=3.0;
變數i的精度低於3.0,但是由於i已經宣告為int型的變數,變數的值可以變,但變數的型別可不能變來變去的,所以這條命令會出錯的。
強制型別轉換:無法自動轉換為我們需要的型別,可以用強制型別轉換,比如上例可以這樣完成:
int i=(int)3.0;
數字前面的(int)表示轉換的目標型別為int,3.0會被強制轉換為3。
需要注意, double 型強制轉換為int型將失去小數部分,比如(int)2.8,我們得到的將是2。
以上摘自慕課網課程《c#開發輕鬆入門》
C 基礎 型別轉換
隱式轉換就是系統預設的 不需要加以宣告就可以進行的轉換。在隱式轉換過程中,編譯器無需對轉換進行詳細檢查就能夠安全地執行轉換。比如從int型別轉換到long型別就是一種隱式轉換。隱式轉換一般不會失敗,轉換過程中也不會導致資訊丟失。顯式轉換需要強制轉換運算子。在轉換中可能丟失資訊時或在出於其他原因轉換可...
C語言基礎學習筆記 型別轉換
型別轉換分類 若參與運算的量型別不同,則先轉成同一型別再進行計算,分為隱式轉換和顯示轉換。隱式轉換 由編譯器完成。語言規定轉換規則是由低階向高階轉換。注 賦值運算時,如兩邊型別不同,將自動轉換為和左邊相同的型別。顯示轉換 又叫強制型別轉換。直接在要轉換的資料前面用小括號加需要轉換成的型別。一般形式為...
c 筆記 型別轉換
類型別轉換運算子是類的一種特殊成員函式,它負責將乙個類型別的指轉換成其他型別。型別轉換函式的一般形式 operator type const type表示某種型別。型別轉換運算子可以面向任意型別 除void之外 進行定義,只要該型別能作為函式的返回型別。因此,我們不允許轉換成陣列或者函式型別,但允許...