回覆列表
-
1 # adylm5334
-
2 # 使用者8156776498399
用強制轉換,比如 double c = (double)a/b; 這樣把a強制轉換為double來計算,double/int 得到的就是double; 當然float同理.
用強制轉換,比如 double c = (double)a/b; 這樣把a強制轉換為double來計算,double/int 得到的就是double; 當然float同理.
int型除以double型,結果是double型自動轉換遵循以下規則:
1) 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。
2) 轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。 a.若兩種型別的位元組數不同,轉換成位元組數高的型別 b.若兩種型別的位元組數相同,且一種有符號,一種無符號,則轉換成無符號型別3) 所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,也要先轉換成double型,再作運算。4) char型和short型參與運算時,必須先轉換成int型。5) 在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊量的型別。如果右邊量的資料型別長度左邊長時,將丟失一部分資料,這樣會降低精度,丟失的部分按四捨五入向前舍入。例如:int 和double屬於不同型別,轉換遵循低精度到高精度轉換,所以int先轉成double型就算,結果就是double型。