1.問題 : 今天在寫代碼 將double 轉成BigDecimal 的時候 , 發現轉成的數據跟原數據不太一樣
double b=57.3; BigDecimal decimalB=new BigDecimal(b); System.out.println(decimalB); //結果 57.2999999999999971578290569595992565155029296875
很明顯 , 精度丟失.
2.解決 :
double c=57.3; BigDecimal decimalC=new BigDecimal(Double.toString(c)); System.out.println(decimalC); double d=57.3; BigDecimal decimalD=BigDecimal.valueOf(d); System.out.println(decimalD); //結果 57.3 57.3
借鑒原文 :https://www.cnblogs.com/yunliu0603/p/10064996.html
這位老哥寫的比較細 , 我的寫的主要是給自己看的 ..哈哈....