自動類型轉換遵循下面的規則:
- 若參與運算的數據類型不同,則先轉換成同一類型,然後進行運算。
- 轉換按數據長度增加的方向進行,以保證精度不降低。例如int型和long型運算時,先把int量轉成long型後再進行運算。
- 所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。
- char型和short型參與運算時,必須先轉換成int型。
- 在賦值運算中,賦值號兩邊的數據類型不同時,需要把右邊表達式的類型將轉換爲左邊變量的類型。如果右邊表達式的數據類型長度比左邊長時,將丟失一部分數據,這樣會降低精度。
下圖表示了類型自動轉換的規則