因为要优化用户体验,所以逼不得已需要在页面对金额进行统计加减,然后百度了下JS浮点数计算怎么算,发现都是如下思路:
- 判断小数点后面有多少位
2、两位就乘以100,三位就是、乘以1000,也就是可以用Math.pow函数来做乘10操作
3、最后结果在除以多乘的值
类似如下代码
function FloatAdd(arg1,arg2){
var r1,r2,m;
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));
return (arg1*m+arg2*m)/m;
}
但是我发现,这样子对于有些数据还是不行的,所以这里要进行一些小修改,就是多乘10,改为如下:
function FloatAdd(arg1,arg2){
var r1,r2,m;
try{r1=arg1.toString().split(".")[1].length+1}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length+1}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
return (arg1*m+arg2*m)/m;
}