課程
/后端開發(fā)
/Java
/Java入門第一季(IDEA工具)
不懂,他們不是只是精確位數(shù)和占用大小不一樣嗎
2015-03-11
源自:Java入門第一季(IDEA工具) 3-2
正在回答
涉及(計算)自動轉(zhuǎn)型,char、byte計算時轉(zhuǎn)成int(沒有比int范圍更廣的long和精度更高的浮點數(shù)參與),其他的就是向精度更高的轉(zhuǎn)型,int與long計算轉(zhuǎn)型成long,int與float/double計算轉(zhuǎn)型成float/double,float與double轉(zhuǎn)型成double
這里,我想sum應該是個整型吧(int/long),在計算double avg = sum/4; 時sum為int或long,除以4被轉(zhuǎn)型為int/long類型,然后被賦值給精度更高的double類型,然而整型是沒有浮點數(shù)部分的,因此小數(shù)部分在后面計算(sum/4)時就已經(jīng)被丟棄了,只保留了整數(shù)部分并賦值給double
而float avg = sum/4f;后面sum/4f時明確指定了除數(shù)是一個float類型的浮點數(shù),那么這個計算會被轉(zhuǎn)型成精度更高的float進行計算(即把sum也作float類型進行除運算),因此結(jié)果會保留到float所允許的浮點數(shù)精度范圍內(nèi)
寂靜的小白 提問者
寒蕊
第一個是 (double)(sum/4)
第二個是 (float)((float)sum/(float)4)?
舉報
0基礎(chǔ)萌新入門第一課,從Java環(huán)境搭建、工具使用、基礎(chǔ)語法開始
3 回答double avg=sum/4d 或者float avg=sum/4f 后面加了字母d或f的,運算出來是26.25 而double avg=sum/4 或者float avg=sum/4 這樣就只是26.0 這是為什么額,后面加字母是控制輸出精度的嘛?
3 回答double avg=sum/4.0;為什么這個結(jié)果是26.25,而不是26.0?
2 回答為什么double avg=sum/4;和double avg=sum/4.0;不同????
3 回答double avg=sum/4.0;結(jié)果是26.25?
1 回答怎么輸入double avg=sum/4.0之后平均年齡可以為26.25了嘞?如果是輸入double avg=sum/4平均年齡是26!求解怎么回事??
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-03-11
涉及(計算)自動轉(zhuǎn)型,char、byte計算時轉(zhuǎn)成int(沒有比int范圍更廣的long和精度更高的浮點數(shù)參與),其他的就是向精度更高的轉(zhuǎn)型,int與long計算轉(zhuǎn)型成long,int與float/double計算轉(zhuǎn)型成float/double,float與double轉(zhuǎn)型成double
這里,我想sum應該是個整型吧(int/long),在計算double avg = sum/4; 時sum為int或long,除以4被轉(zhuǎn)型為int/long類型,然后被賦值給精度更高的double類型,然而整型是沒有浮點數(shù)部分的,因此小數(shù)部分在后面計算(sum/4)時就已經(jīng)被丟棄了,只保留了整數(shù)部分并賦值給double
而float avg = sum/4f;后面sum/4f時明確指定了除數(shù)是一個float類型的浮點數(shù),那么這個計算會被轉(zhuǎn)型成精度更高的float進行計算(即把sum也作float類型進行除運算),因此結(jié)果會保留到float所允許的浮點數(shù)精度范圍內(nèi)
2015-03-11
第一個是 (double)(sum/4)
第二個是 (float)((float)sum/(float)4)?