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

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

在Java中操作和比較浮點

在Java中操作和比較浮點

元芳怎么了 2019-10-21 12:51:13
在Java中,浮點運算沒有精確表示。例如下面的java代碼:float a = 1.2; float b= 3.0;float c = a * b; if(c == 3.6){    System.out.println("c is 3.6");} else {    System.out.println("c is not 3.6");} 打印“ c不是3.6”。我對超過3位小數(#。###)的精度不感興趣。如何處理這個問題以乘以浮點數并可靠地進行比較?
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

它是浮點數不應該像進行比較的一般規則(A == B) ,而是喜歡(Math.abs(a-b) < delta)在那里三角洲是一個小數目。


十進制形式的具有固定位數的浮點值不必具有二進制形式的固定位數。


另外為清楚起見:


雖然嚴格的==浮點數的比較具有非常小的實際意義上說,嚴格的<和>比較,相反,是一個有效的用例(實施例-當某些值超過閾值的邏輯觸發:(val > threshold) && panic();)


查看完整回答
反對 回復 2019-10-21
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

如果您對固定精度數字感興趣,則應使用固定精度類型,例如BigDecimal,而不是固有的近似(盡管精度高)類型,例如float。關于堆棧溢出,有許多類似的問題,涉及許多語言,對此進行了更詳細的介紹。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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