BigDecimal-compareTo用法避坑-1


如果 left 和 right 構造方式不同則可能造成 比較結果不正確的情況產生
正常:
     new BigDecimal(0.1).compareTo(new BigDecimal( 0.10)) ==> 0
     new BigDecimal("0.1").compareTo(new BigDecimal( "0.10")) ==> 0
異常:
 new BigDecimal("0.1").compareTo(new BigDecimal( 0.10)) ==> -1
解決方式(不過需要考慮精度長度):
 new BigDecimal("0.1")
     .setScale(2, BigDecimal.ROUND_HALF_UP)
                  .compareTo(new BigDecimal( 0.10)
                             .setScale(2, BigDecimal.ROUND_HALF_UP))  ==> 0

 


免責聲明!

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



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