double轉BigDecimal的精度問題


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

這位老哥寫的比較細 , 我的寫的主要是給自己看的 ..哈哈....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM