public static void main(String[] args) {
        //equals()函数进行比较会对两个对象的数值和精度两方面进行比较
        // 返回true/false
        //compareTo()函数进行比较则会忽略精度只对两个对象的数值进行比较
        // 返回0为相等,1为左边大,-1为右边大
        BigDecimal a = new BigDecimal("0.100");
        BigDecimal b = new BigDecimal("0.1");
        System.out.println(a.equals(b)); //false
        System.out.println(a.compareTo(b)); //true

        BigDecimal c = new BigDecimal(0.1);
        //0.1如果是以double类型构造的,那么返会的数值则会取他的近似值
        //0.1的近似值是0.1000000000000000055511151231257827021181583404541015625
        //精度为55
        System.out.println(c); //0.1000000000000000055511151231257827021181583404541015625
        BigDecimal d = new BigDecimal("0.1");
        //0.1如果是以string类型构造的,那么返回的数值则会是准确的数值(0.1)
        //因为构造内部是获取string的char数组然后循环拼接之类生成的吧
        //(ps:这里是我瞎猜的, 里面代码长的不行200行不是人看到,也懒得debug-_-!!)
        System.out.println(d); //0.1
        System.out.println(c.equals(d)); //false
        System.out.println(c.compareTo(d)); //false
        //总结:在使用BigDecimal类型时需要保证值和精度都一致时可以用equals()
        //如果只需要保证值相等那么建议使用compareTo
    }