前几天碰到有趣的是 0.1+0.2 ==0.3 //false
顿时郁闷,好吧原来0.1+0.2变成了 0.30000000000000004
再来一个 2.4/0.8 =>2.9999999999999996 没办法换种方式,都转换成整数 (2.4 * 100 )/(0.8 *100)
然后今天做项目的时候刚好也碰到了,要做一个价格增减的运算,譬如原来的价格是
10.22现在要减去0.11 结果值又出现了很多的小数 10.110000000000001,然后我就用了toFixed来过滤小数,但是不知道跟前面那种转换成整数后再执行哪种效率高,好吧还是试下再说
var date1 = new Date();
for(var i = 0; i < 10000; i++){
var result1 = (10.22 -0.11).toFixed(2);
}
console.log(new Date() - date1);//22
var date2 = new Date();
for(var j = 0; j < 10000; j++){
var result2 = (10.22 * 1000 -0.11 * 1000)/1000;
}
console.log(new Date() - date2);//1
for(var i = 0; i < 10000; i++){
var result1 = (10.22 -0.11).toFixed(2);
}
console.log(new Date() - date1);//22
var date2 = new Date();
for(var j = 0; j < 10000; j++){
var result2 = (10.22 * 1000 -0.11 * 1000)/1000;
}
console.log(new Date() - date2);//1
差距很明显了