3 回答
已采納

onemoo
TA貢獻883條經驗 獲得超454個贊
先說一下,你這句注釋里的問題寫錯了吧? ?sum / 4.0 的結果不應該是 26.25 嗎?!
就當你是筆誤了吧,所以你是問“為什么 sum/4 結果是 26? 而 sum/4.0 結果是 26.25 ?”
sum / 4 ?這里除號的左右兩側都是整型,發生的是整型間除法,結果也是整型,也就是結果只取小數點前的整數部分。 即便 avg 是浮點型,但等號右側計算出的結果是沒有小數點的整型,所以最后 avg 也只得到整型部分。
sum / 4.0 這里除號右側是浮點型,那么發生的就是浮點除法。等號左側的整型 sum 值會被轉為 double 值再參與運算,運算結果也是浮點型。 所以最后 avg 就能得到浮點結果了。

NullMoneyException
TA貢獻9條經驗 獲得超16個贊
不可能6.25? ?是26.25吧? ?這點說明你java基礎沒掌握 基本數據類型沒搞懂? int/int 結果肯定是int? 小數位就丟失了? ? int/double 會上升為double/double? ?結果為double? ?不同數據類型不能直接運算? 低位上升為高位 再進行處理? ? 主要是精度丟失的問題? char a=1+1? 看看編譯能通過嗎? ?如果實在不好理解先去學2進制吧
添加回答
舉報
0/150
提交
取消