第七天我們來學習運算式與資料型態的轉換!
運算式與資料型態在定義、宣告時就已經決定其形態,因此不能隨意轉換成其他資料型態,但C++容許使用者有限度的做型態轉換的處理。運算式與資料型態的轉換可分為「隱性資料型態轉換」(implicit type conversion)
及「顯性資料型態轉換」(explicit type conversion)兩種。
在程式中已經定義好的資料型態之變數,若是想以另一種型態表示時,C++會依據下列的規則自動做資料型態的轉換:
(1) 轉換前的資料型態與轉換後的型態相容
(2) 轉換後的資料型態之表示範圍比轉換前的型態大
由執行結果可以看到,當兩個數中有一個為浮點數時,其運算的結果會直接轉換為浮點數。當運算式中變數的型態不同時,C++會自動將較少的表示範圍轉換成較大的表示範圍後,再做運算。
當我們做兩個整數的運算時,其運算的結果也會是整數。舉例來說,做整數除法8/3的運算,其結果為整數2,並不是實際2.66666…,因此在C++中若是想要得到計算的結果是浮點數,就必須將資料做顯性資料型態的轉換,轉換的語法如下:
(欲轉換的資料型態)變數名稱;
以下三種寫法均成立:
(1) (float)a/b //將整數a強制轉換成浮點數,再與整數b相除
(2) (a/(float)b //將整數b強制轉換成浮點數,再以整數a除之
(3) (float)a/(float)b //將整數a與b同時強制轉換成浮點數
今天的內容就先到這邊!謝謝大家~