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

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

如何避免Java中浮點數或雙精度的浮點精度錯誤?

如何避免Java中浮點數或雙精度的浮點精度錯誤?

呼啦一陣風 2019-11-05 09:04:25
如何避免Java中浮點數或雙精度的浮點精度錯誤?我有一個非常惱人的問題,長數量的浮動或雙倍在Java中?;旧?,我的想法是,如果我執行:for ( float value = 0.0f; value < 1.0f; value += 0.1f )    System.out.println( value );我得到的是:0.00.10.20.30.40.50.60.700000050.80000010.9000001我知道有一個累積的浮動精度誤差,但是,如何擺脫這一點?我試著用雙倍來減少錯誤的一半,但結果仍然是一樣的。有什么想法嗎?
查看完整描述

3 回答

?
人到中年有點甜

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

您可以使用以下類來避免這個特定的問題BigDecimalfloatdouble作為ieee 754浮點,不是設計得非常精確,而是設計得更快。但請注意喬恩的觀點如下:BigDecimal不能準確地表示“三分之一”double能準確表示“十分之一”。但是對于(比如說)財務計算,BigDecimal像這樣的類往往是可行的,因為它們可以用我們人類看待它們的方式來表示數字。

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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