js中带小数的两数据的操作问题,出现很多小数位

前几天碰到有趣的是 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   

 差距很明显了


原文地址:https://www.cnblogs.com/fuyun2000/p/2435527.html