先上简单代码:
public class Demo {
public static void main(String[] args) {
double x = 0.9;
double y = 0.8;
double z = x + y;
System.out.println(z);
}
}
输出结果为:1.7000000000000002
为什么会出现精度的问题?原因是什么?
我在《Effective Java》这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。
但我始终不明白相加的出现的原理是什么?? |