public class Test{
    public static void main(String[] args){
         double a=7.7,b=7,c;
         c=a-b;
         System.out.println(c);
    }
}
结果等于0.7000000000000002,到底这个2是那来的?为什么得这结果?
我想做计算器,如果计算器算出这个结果就是不对的,但我又不想制这
计算器多少位小数,应该怎么处理?请各位大侠说详细点,谢谢

解决方案 »

  1.   

    float 和 double 等浮点类型计算时经常有0.0000***1的偏差的,我通常是将double转换成BigDecimal进行计算,可以了解下BigDecimal
      

  2.   

    double 的精度长,用二进制来处理的,你自己用二进制算,你也会算出这样的结果。
      

  3.   

    double float操作 ,需要注意精度的问题
      

  4.   

    double 类型的 7.7 不等于 7.7
      

  5.   

    谢谢你,问题解决了,呵呵
    也谢谢各位,让我知道了double 7.7并不等于7.7;
      

  6.   

    用这个BigDecimal还是有误差,还是要用到DecimalFormat,不过更精确了,已经可以满足我的要求了。