解决方案 »

  1.   

    Java的简单类型不能够精确的对浮点数进行运算,所以精度内可以,超过了以后结果会发生误差。
    例如编译运行下面这个程序:
    public class Test{
        public static void main(String args[]){
            System.out.println(0.05+0.01);
            System.out.println(1.0-0.42);
            System.out.println(4.015*100);
            System.out.println(123.3/100);
        }
    };
    你会看到结果是:
    0.060000000000000005
    0.5800000000000001
    401.49999999999994
    1.2329999999999999
      

  2.   

    double float 在计算时经常会丢失精度,用bigdecimal就不会有问题,同时也可以比较大小
      

  3.   

    decimal 里面直接有比较的方法。