爲什麼浮點類型的數值會精度丟失?

在開發過程中,我們經常會發現浮點類型的數值會精度丟失,比如:
System.out.println(2.0 - 1.1)
我們肯定覺得應該輸出0.9,但是程序輸出的是
0.8999999999999999

在java程序中,JDK提供了BigDecimal類,以解決精度丟失這一問題,但到底是什麼原因呢?

這種舍入誤差的主要原因是浮點數值採用二進制系統表示 ,而在二進制系統中無法精確地表示分數 1 / 10。 這就好像十進制無法精確地表示分數 1 / 3—樣。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章