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