作精确计算,不能用double 或是 float型
用BigDecimal试试

解决方案 »

  1.   

    同意楼上建议看《java高效编程指南》
      

  2.   

    float c1 = (float)(a1- b1 );给我分哦
      

  3.   

    BigDecimal a1 = new BigDecimal(525464);
    BigDecimal b1 = new BigDecimal(402946.8635);
    BigDecimal c1 = a1.subtract(b1) ;
    double a2 = 525464;
    double b2 = 402946.8645;
    float c2 = (float)(a2 - b2 );
    System.out.println(c1);
    System.out.println(c2);
    结果为
    122517.136500000022351741790771484375
    122517.13
    可见
    BigDecimal 也不见得比double好在哪里
    float只可以到小数点后两位
      

  4.   

    还不是
    java 默认 小数double型
    加上32微机就知道了