http://www.jb51.net/article/43513.htm
public class Test_1 {
public static void main(String[] args) {
System.out.println(0.06+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(303.1/1000);
}
}
public static void main(String[] args) {
System.out.println(0.06+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(303.1/1000);
}
}
运行结果如下
0.06999999999999999
0.5800000000000001
401.49999999999994
0.30310000000000004
cost/2 改成
BigDecimal b1 = new BigDecimal(cost);
Double costDivide2 = b1.divide(new BigDecimal(2)).doubleValue();
就ok了 直接cost/2 得到0.061602000000000004
本文通过一个Java示例程序展示了使用浮点数进行算术运算时可能遇到的精度丢失问题,并提供了一种利用BigDecimal类来解决此类问题的方法。
1072

被折叠的 条评论
为什么被折叠?



