可能重复:
Java 浮点数和双精度数,如何避免 0.0 + 0.1 + ... + 0.1 == 0.9000001?
如何克服 java android 中双倍乘法的精度问题?请注意,我正在将字符串值转换为双精度值。
例如:当我将两个双精度值相乘时:
double d1 = Double.valueOf("0.3").doubleValue() * Double.valueOf("3").doubleValue();
System.out.println("Result of multiplication : "+d1);
我得到以下结果:0.8999999999999999
我得到的一些结果是。
0.6*3=1.7999999999999998;
0.2*0.2=0.04000000000000001;
等等
我想得到以下结果,而不是上述结果。
0.3*3=0.9;
0.6*3=1.8;
0.2*0.2=0.04;
请记住,我不是想将它四舍五入到最接近的整数。