我一直在用 java 编码,最近开始用 javascript 编码(准确地说是 node.js)。让我发疯的一件事是对十进制数进行加法运算;
考虑以下代码
var a=0.1, b=0.2, c=0.3;
var op1 = (a+b)+c;
var op2 = (b+c)+a;
令我惊讶的是,我发现了op1 != op2
!console.logging op1 和 op2 打印出以下内容:
console.log(op1); 0.6000000000000001
console.log(op2); 0.6
这根本不符合逻辑。这对我来说似乎是一个错误,因为 javascript 根本无法忽略算术规则。有人可以解释为什么会这样吗?