【发布时间】:2023-03-23 06:40:02
【问题描述】:
可能重复:
Java floats and doubles, how to avoid that 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;
请记住,我并不是要将它四舍五入到最接近的整数。
【问题讨论】:
-
您尝试过 DecimalFormat 吗?示例:(new DecimalFormat("0.00").format(doubleValue*1.00000));
标签: java android double double-precision