【推荐】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); }`
来源:oschina
链接:https://my.oschina.net/dreambreeze/blog/3146026