js计算精度丢失修复方法

送分小仙女□ 提交于 2019-12-22 23:49:26

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

`/**

  • 除法-js精度丢失的计算方法 */ util.division = function(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){ } r1 = Number.parseInt(arg1.toString().replace(".","")) r2 = Number.parseInt(arg2.toString().replace(".","")) return util.multiplication((r1 / r2),Math.pow(10,t2 - t1)); }

/**

  • 乘法-js精度丢失的计算方法 */ util.multiplication = function(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) }

/**

  • 加法-js精度丢失的计算方法 */ util.addition = function(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 Math.round((arg1 * m + arg2 * m)) / m }

/**

  • 减法-js精度丢失的计算方法 */ util.subtraction = function(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); }`
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!