分享一个JDK1.8丢失数字精度的案例
生活随笔
收集整理的這篇文章主要介紹了
分享一个JDK1.8丢失数字精度的案例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
差異出現(xiàn)在 DigitList.java的 round() 方法處理上:
1.6:
1.8:
根據(jù)設(shè)置規(guī)則消除無需顯示的數(shù)字時,JDK1.8 新增了一個二進制數(shù)向ASCII碼轉(zhuǎn)換的過程如下:
從而導(dǎo)致拿到的取舍后的數(shù)字出現(xiàn)了區(qū)別:
? ? ? ? ? ? ? ? ? ? ? ?
?
JDK官方文檔也曾指出:Float和Double類型的數(shù)據(jù)在進行計算式,可能會存在精度的丟失,所以推薦如下方式可以規(guī)避1.8版本四舍六入的問題:
測試結(jié)果:
轉(zhuǎn)載于:https://www.cnblogs.com/BrokenSwitch/p/10139039.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的分享一个JDK1.8丢失数字精度的案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python list 取重复次数
- 下一篇: 数据库分库分表简介