在项目中忽然发现的问题ui
if(resdata.errorCode ===0 && resdata.data){ resdata.data.list.map(item=>{ i++; item.num = (resdata.data.pageNum)*10+i-10 if(item.unitPrice && item.cost){ item.youhuiCash =item.unitPrice-item.cost } })
解决以下:
解决方案的原理是,将浮点数乘以(扩大)10的n次方倍,把浮点数变为整数后再进行相应的运算,最后将获得的结果除以(缩小)10的n次方倍。spa
//减法的精度控制 floatSub(arg1,arg2){ var r1,r2,m,n; try{ r1=arg1.toString().split(".")[1].length }catch(e){r1=0} try{ r2=arg2.toString().split(".")[1].length }catch(e){r2=0} m=Math.pow(10,Math.max(r1,r2)); //动态控制精度长度 n=(r1>=r2)?r1:r2; return ((arg1*m-arg2*m)/m).toFixed(n); },