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