BigDecimal比较大小的正确姿势

15,361 阅读1分钟
  • demo
 public static void main(String[] args) {
        BigDecimal a = new BigDecimal("10.003");
        BigDecimal b = new BigDecimal("10.004");
        BigDecimal c = new BigDecimal("10.003");

        /***
         * 大于 和 小于
         */
        // a>b --> false
        boolean b1 = a.compareTo(b) == 1;
        // a<b --> true
        boolean b2 = a.compareTo(b) == -1;

        /***
         * 大于等于
         */
        // a>=b --> false
        boolean b3 = a.compareTo(b) > -1;
        // a>=c --> true
        boolean b4 = a.compareTo(c) > -1;

        /***
         * 小于等于
         */
        // a<=b --> true
        boolean b5 = a.compareTo(b) < 1;
        // a<=c --> true
        boolean b6 = a.compareTo(c) < 1;

        /***
         * 等于
         */
        // a=c --> true
        boolean b7 = a.compareTo(c) == 0;


        System.err.println("b1:" + b1);
        System.err.println("b2:" + b2);
        System.err.println("b3:" + b3);
        System.err.println("b4:" + b4);
        System.err.println("b5:" + b5);
        System.err.println("b6:" + b6);
        System.err.println("b7:" + b7);
    }
  • 测试结果