可能重複:
Java floats and doubles, how to avoid that 0.0 + 0.1 + … + 0.1 == 0.9000001?如何解決雙精度問題在Java
我怎樣才能克服在Java的Android雙乘法精度問題??請注意,我轉換一個字符串值轉換爲double值。
例如:當我乘兩個雙重價值:
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的?例如:(新的DecimalFormat(「0.00」).format(doubleValue * 1.00000)); –