转载和积累系列 - JS 浮点数安全计算函数
来源:互联网 发布:网络机顶盒什么牌子好相关推荐 编辑:程序博客网 时间:2024/05/22 17:44
JS浮点数计算会出现意向不到的问题,可以用以下几个函数来计算浮点数:
function accAdd(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}//乘法function accMul(arg1,arg2){ var m=0,s1=arg1.toString(),s2=arg2.toString(); try{m+=s1.split(".")[1].length}catch(e){} try{m+=s2.split(".")[1].length}catch(e){} return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)}//除法function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1].length}catch(e){} try{t2=arg2.toString().split(".")[1].length}catch(e){} with(Math){ r1=Number(arg1.toString().replace(".","")) r2=Number(arg2.toString().replace(".","")) return (r1/r2)*pow(10,t2-t1); }}//加法function accSub(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)); //last modify by deeka //动态控制精度长度 n=(r1>=r2)?r1:r2; return ((arg1*m-arg2*m)/m).toFixed(n);}
- 转载和积累系列 - JS 浮点数安全计算函数
- 转载和积累系列 - linux安全设置
- js 付浮点数计算函数
- js浮点数计算
- 转载和积累系列 - JS 闭包
- 转载和积累系列 - js实现 hashMap
- 转载和积累系列 - Linux服务器安全教程
- 转载和积累系列
- JS浮点数精确计算函数(加,减,乘,除)
- js浮点数精确计算函数(加,…
- JS浮点数计算BUG
- 转载和积累系列 - js数组操作大全(转)
- 转载和积累系列 - js中的垃圾回收机制
- [js]JS计算浮点数四舍五入备忘
- js浮点数计算错误的bug
- JAVA 及 js 浮点数精确计算
- JAVA 及 js 浮点数精确计算
- JS浮点数(小数)计算加减乘除
- oracle rman备份脚本
- Multi-touch (MT) Protocol 小结
- delphi完美经典--第九、十章
- 持续集成工具hudson
- Java命名规范
- 转载和积累系列 - JS 浮点数安全计算函数
- 配置OSPF区域内的MD5消息认证
- 网卡全双工 半双工 单工
- SUBTOTAL 函数与所在行
- outer join 实例讲解
- oracle rman 恢复脚本
- 【用win 7系统玩游戏网络延时高?】
- As of ADT 14, resource fields cannot be used as switch cases. Invoke this fix to get more informat
- TIME_WAIT相关知识总结