看板 java 關於我們 聯絡資訊
今天遇到了一個Long型態相除的問題 long a = 1; long b = 2; 寫法一: double c = a/b; 結果c = 0 寫法二: double c = (double) a/b; 結果c = 0.5 寫法三: double c = (double) (a/b); 結果c = 0 有人知道為什麼寫法三出來不會是0.5嗎!? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.20.44
lovdkkkk:因為寫法一出來不是0.5 05/16 23:43
tkcn:寫法三只是先做解法一,再 (把0) 轉成 double 05/16 23:43
danshu:寫法二是先把a轉成dobule後再除以b(long),所以會是0.5 05/17 01:19
chunhsiang:參考向上轉型 05/17 09:03
PsMonkey:重點是你是否知道寫法一的結果,後頭都是運算順序問題 05/17 11:13
wesley10000:喔!是我沒有想清楚寫法二,會先去做(double)a 05/18 15:12
wesley10000:所以我想最正確的寫法應該會是(double)a / (double)b 05/18 15:14
PsMonkey:1.0*a/b,想清楚再說...... 05/18 17:07