91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java會出現精度丟失的原因有哪些

發布時間:2021-08-31 15:14:25 來源:億速云 閱讀:470 作者:小新 欄目:開發技術

這篇文章主要介紹java會出現精度丟失的原因有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

很多人都知道:浮點數值不適用于無法接受舍入誤差的金融計算中,即:我們常說的丟失精度問題。

這是為什么呢?

很多人還知道這樣一句話:這種舍入誤差的主要原因是浮點數值采用二進制系統表示, 而在二進制系統中無法精確地表示分數 1/10。這就好像十進制無法精確地表示分數 1/3—樣。

針對十進制,1除以3是除不盡的。很好理解,因為我們一直接觸的就是十進制,等于0.333333… 很好理解

但是:二進制系統中無法精確地表示分數 1/10。為啥呢。就有點不理解了

《Java核心技術卷》書上也是這么寫的。

java會出現精度丟失的原因有哪些

接下來我們就深究一下為什么!!!?

重點這句話:這種舍入誤差的主要原因是浮點數值采用二進制系統表示。就是說我們在代碼中編寫的 System.out.println(4.0 - 3.6); 這樣一段代碼,?

計算過程:

①將十進制的 4.0 轉換成 二進制,將十進制的 3.6 轉換成二進制;

②使用轉換后的二進制,進行減法運算?

3.6 轉換成二進制,就類似于 1除以3一樣,是除不盡。所以 System.out.println(4.0 - 3.6); 就會輸出 0.3999999999999999

備注:

十進制的 3.6 轉換成二進制為:11.100110011001…(一直循環除不盡),就類似于 1/3 是 0.33333333333…除不盡。所以System.out.println(4.0 - 3.6); 就會輸出 0.3999999999999999

十進制的 3.6 轉換成二進制為:11.100110011001…

轉換過程參考下文??? 【4.(小數)十進制轉二進制(除不盡)】

此處涉及到進制轉換,參考下文:

涉及到:

1.二進制 轉 十進制
2.十進制 轉 二進制
3.(小數)十進制 轉 二進制

接下來,舉幾個二進制和十進制之間轉換的例子 。你就知道為什么【除不盡】了

1.二進制轉十進制

java會出現精度丟失的原因有哪些

2.(整數)十進制轉二進制

java會出現精度丟失的原因有哪些

3.(小數)十進制轉二進制(可除盡)

java會出現精度丟失的原因有哪些

4.(小數)十進制轉二進制(除不盡)

java會出現精度丟失的原因有哪些

總結:??

因為 3.6 轉成二進制為 11.10011001....,除不盡的

所以 System.out.println(4.0 - 3.6); 就會輸出 0.3999999999999999

以上是“java會出現精度丟失的原因有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廉江市| 海原县| 浑源县| 德昌县| 通渭县| 和田市| 大渡口区| 托克托县| 常德市| 西吉县| 长泰县| 澜沧| 阳谷县| 江口县| 和平县| 桓仁| 玛多县| 广安市| 赣榆县| 襄垣县| 垦利县| 襄汾县| 绥中县| 乐陵市| 清丰县| 天柱县| 德阳市| 嘉鱼县| 寿光市| 禹城市| 久治县| 清远市| 墨江| 江陵县| 昌江| 惠水县| 栾城县| 华蓥市| 香河县| 濮阳县| 泽库县|