如果 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