例:
var a=0.1;
var b=0.2;
var c=0.6;
var d=0.8;
var result=[];
result=[d-c==b,b-a==a];
思考一下,result中的结果会是什么?result=[true,true]?事实是result=[false,true]。
为什么呢?
javascript中采用了IEEE-754浮点表示法,这是一种二进制表示法,可以精确的表示分数,比如1/2、1/4等,但对于十进制分数1/10、1/100等并不能精确表示。
所以,0.8-0.6的结果是近似于0.2,但不等于0.2;而0.2-0.1的结果为0.1。