JavaScript浮点运算,小数点精度
// JavaScript Document //数学函数 // 浮点数加法运算 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; } // 浮点数减法运算 function 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); } // 浮点数乘法运算 function floatMul(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 floatDiv(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 setScale(value, scale, roundingMode) { if (roundingMode.toLowerCase() == "roundhalfup") { return (Math.round(value * Math.pow(10, scale)) / Math.pow(10, scale)).toFixed(scale); } else if (roundingMode.toLowerCase() == "roundup") { return (Math.ceil(value * Math.pow(10, scale)) / Math.pow(10, scale)).toFixed(scale); } else { return (Math.floor(value * Math.pow(10, scale)) / Math.pow(10, scale)).toFixed(scale); } }
相关推荐
-
html5本地缓存 javascript
2019-1-7
-
js 框架封装(可直接使用——不依赖jquery) javascript
2019-1-8
-
纯H5 AJAX文件上传加进度条功能 javascript
2019-1-7
-
工作中常用到的JS验证 javascript
2019-1-8
-
js浮点数加减乘除 javascript
2019-1-8
-
canvas旋转图片 javascript
2019-1-7
-
js测试密码的强度 javascript
2019-1-8
-
图片放大器源码 javascript
2019-1-7
-
JS屏蔽鼠标右键菜单、复制粘贴、选中等 javascript
2019-1-8
-
Node.js文件上传 javascript
2019-1-8