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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么兩個整數的除法在Java中返回0.0?

為什么兩個整數的除法在Java中返回0.0?

為什么兩個整數的除法在Java中返回0.0?int totalOptCount = 500;int totalRespCount=1500; float percentage =(float)(totalOptCount/totalRespCount);為什么它總是返回值0.0?另外,我想把這個格式化成00.00格式并轉換成字符串?
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

因為從浮點到浮點的轉換是在除法完成之后發生的。你需要:

float percentage = ((float) totalOptCount) / totalRespCount;

您應該能夠使用以下內容進行格式化:

String str = String.format("%2.02f", percentage);


查看完整回答
反對 回復 2019-07-11
?
www說

TA貢獻1775條經驗 獲得超8個贊

如果你用int值,使用double可能是一個更好的選擇,并有較少的四舍五入錯誤。float能代表int值,無錯誤,最多可達1600萬。double能夠準確地表示所有int價值。

double percentage =(double) totalOptCount / totalRespCount;

百分比通常乘以100,這意味著您可以放棄轉換。

double percentage = 100.0 * totalOptCount / totalRespCount;


查看完整回答
反對 回復 2019-07-11
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

(totalOptCount/totalRespCount)

在這里,股息和除數都是類型的。int這意味著它們只允許整數值,并且這種方程的答案總是整數字面意思。

如果我把它弄壞了,它會像下面這樣

(double)(500/1500)

根據實際計算,500/1500將給出0.33333,但編譯器會將其轉換為整數文字,因為這兩個操作數都是int類型。

(double)(0)


編譯器將獲得一條指令來轉換為0價值翻倍這樣你就能得到0.0結果

0.0

然后,您可以將結果更改為@ZachJanicki推薦的任何格式。

請記住,如果兩個操作數都是相同類型的,則結果也是相同類型的。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 2516 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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