亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥 sum/4.0 結果是26.25嘞

int age1=24; int age2=18; int age3=36; int age4=27; int sum = age1+age2+age3+age4; double avg = sum/4.0; 為啥 sum/4.0 結果是26.25嘞?

正在回答

3 回答

因為在java中double是雙精度的,而float是單精度的

0 回復 有任何疑惑可以回復我~
#1

云中逐月 提問者

非常感謝!
2015-12-02 回復 有任何疑惑可以回復我~

貌似和數據源的小數位有關系,你試下double a=105.00/4,這樣輸出的a就是26.25了.

1 回復 有任何疑惑可以回復我~
#1

Java_人生

或者double avg = sum/4.00
2015-12-15 回復 有任何疑惑可以回復我~

.......我小學數學沒學好...難道105除以4 不等于26.25嗎......

0 回復 有任何疑惑可以回復我~
#1

云中逐月 提問者

嗯,數學上是這樣,java中的精度問題還是有點繞,我初學者還需一定時間去理解
2015-12-02 回復 有任何疑惑可以回復我~
#2

天啟之魂 回復 云中逐月 提問者

不是數學的問題......只是不知道你問題的意思 你的問題是為啥 sum/4.0 結果是26.25嘞?實際答案不就應該是這個數嗎?難道該是別的? 樓上的回答更是莫名其妙...這和單雙精度有什么關系.avg就算是float類型 答案也是26.25, 但是不能是除4.0 而是4.0f 你不會是以為雙精度就是2位小數,單精度1位小數吧...所謂的單雙精度指的是float只有4個字節 而double有8個字節 所以double能表示的小數位更多,能精確到更多的位數,所以單雙精度只是一個好理解的說法而已 而且java中默認的小數類型就是double ,比如上面的4.0
2015-12-02 回復 有任何疑惑可以回復我~
#3

qq_82年的彬鍋鍋_03446807 回復 天啟之魂

那sum/4=26.0為什么要加個.o啊,大神。
2016-06-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為啥 sum/4.0 結果是26.25嘞

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號