public static void main(String[] args){
double d;
d=1.10*1.10;
System.out.println(d);
}
为什么输出的结果为1.2100000000000002
而C++中是1.21

解决方案 »

  1.   

    因为JAVA中不是所有的小数都可以用二进制浮点数精确表示所以你想进行精确运算就要用到BigDecimal 注意使用的是 BigDecimal(String)构造器 而不是BigDecimal(double)BigDecimal j =new BigDecimal(Double.toString(1.1));
    BigDecimal k = new BigDecimal(Double.toString(1.1));System.out.println(j.multiply(k));
    这样就可以打印出1.21