Double類型的值相減時精度丟失


一、問題

     在做double類型運算時,發現某些double值相減會導致結構精度丟失。

 

二、原因

        圖1

 

         圖2

 

     會發現在精度在分的情況下,double相減會丟失精度變成處理16位有效數。那么這種情況在算金額時就是錯誤的,如果自己寫一個保留法又不靠譜。

     這種情況下就要使用

 java.math.BigDecimal;


 

 

      

1  @Test
2     public void xx() throws Exception {
3         Double b = 125.11;
4         Double reduce = 100.10;
5         System.out.println(b-reduce);
6         BigDecimal bone = new BigDecimal(b.toString());
7         BigDecimal btwo = new BigDecimal(reduce.toString());
8         System.out.println(bone.subtract(btwo).doubleValue());
9     }

 

 

 
        

 


免責聲明!

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



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