自動(dòng)轉(zhuǎn)換遵循以下規(guī)則:
- 若參與運(yùn)算量的類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。
- 轉(zhuǎn)換按數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證精度不降低。如int型和long型運(yùn)算時(shí),先把int量轉(zhuǎn)成long型后再進(jìn)行運(yùn)算。
a.若兩種類型的字節(jié)數(shù)不同,轉(zhuǎn)換成字節(jié)數(shù)高的類型
b.若兩種類型的字節(jié)數(shù)相同,且一種有符號(hào),一種無(wú)符號(hào),則轉(zhuǎn)換成無(wú)符號(hào)類型 - 所有的[浮點(diǎn)運(yùn)算]都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,再作運(yùn)算。
- char型和short型參與運(yùn)算時(shí),必須先轉(zhuǎn)換成int型。
- 在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。如果右邊量的數(shù)據(jù)類型長(zhǎng)度左邊長(zhǎng)時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失的部分按[四舍五入]向前舍入。
例如:int 和double屬于不同類型,轉(zhuǎn)換遵循低精度到高精度轉(zhuǎn)換,所以int先轉(zhuǎn)成double型就算,結(jié)果就是double型。