以下代码为什么会输出这种结果?
public static void main(String[] args) {
System.out.println(2.0 - 1.1);
System.out.println(1.0 - 0.1);
}
输出
0.899999999999999
0.9
因为double是浮点型,计算结果会失真,要用decimal才不会。
很多程序员计算金额习惯性用duble计算的,如果没遇到过失真,还不知道用decimal。