js小数乘以小数是不精确的怎么办呢?

JavaScript019

js小数乘以小数是不精确的怎么办呢?,第1张

这个其实没法精确,遗留问题,解决两种办法

1:舍弃指定位数后所有位数,比如1.21212,取两位的话就是1.21,缺点是1.21912,取完也是1.21

2:四舍五入。这个是通常做法就不详说了

js含有小数的计算都会有丢失精度的问题

实际上解决的办法就是

把小数转化为整数计算 并同时记住扩大的倍数

最后把结果缩小这个倍数 得到不丢失精度的结果

try catch 就是捕获异常 如果没有捕获肯定会报错

也就是你现在按流程所设想的

但是catch(e){}  是捕获了异常 但是里面并没有任何操作

也就是 越过去了 忽略掉

// 这句就是像将小数点去掉 变成整数 如果没有小数点那就没有变化

// 然后计算之后 缩小 10的m次方倍  也就是之前扩大了的倍数

Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)