System.out.println(2.0 - 1.1)
我們肯定覺得應該輸出0.9,但是程序輸出的是0.8999999999999999
在java程序中,JDK提供了BigDecimal類,以解決精度丟失這一問題,但到底是什麼原因呢?
這種舍入誤差的主要原因是浮點數值採用二進制系統表示 ,而在二進制系統中無法精確地表示分數 1 / 10。 這就好像十進制無法精確地表示分數 1 / 3—樣。System.out.println(2.0 - 1.1)
我們肯定覺得應該輸出0.9,但是程序輸出的是0.8999999999999999
在java程序中,JDK提供了BigDecimal類,以解決精度丟失這一問題,但到底是什麼原因呢?
這種舍入誤差的主要原因是浮點數值採用二進制系統表示 ,而在二進制系統中無法精確地表示分數 1 / 10。 這就好像十進制無法精確地表示分數 1 / 3—樣。ThreadLocal的使用,,,實際上相當於維護了一個Map,其中以鍵值對的形式,存儲了某一個數據被多個線程訪問所對應的值。當然這個數據只能有
JSONArray序列化日期最初用到, 這個是全局設置,會有風險。 String[] dateFormats = new String[] {"yyyyMMdd"}; JSONUtils.getM