js 自定义加减乘除方法(防止js自身计算错误)
来源:互联网 发布:收银进销存软件 编辑:程序博客网 时间:2024/05/22 02:30
/** * 乘法 * @param arg1 * @param arg2 * @returns {Number} */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)}/** * 除法 * @param arg1 * @param arg2 * @returns {Number} */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); }}/** * 加法 * @param arg1 * @param arg2 * @returns {Number} */function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)) if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m}/** * 减法 * @param arg1 * @param arg2 * @returns */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);}
调用示例
alert(accMul(7.88,0.8));//乘法
alert(accDiv(7.88,0.8).toFixed(2));//除法
alert(accAdd(7.88,0.8));//加法
alert(accSub(7.88,0.8));//减法
5 0
- js 自定义加减乘除方法(防止js自身计算错误)
- js 自定义加减乘除方法(防止js自身计算错误)
- js加减乘除精确计算
- JS中用于精确计算的加减乘除方法
- JS计算浮点数加减乘除精确数值的方法
- js 计算器(加减乘除)
- JS浮点数(小数)计算加减乘除
- js加减乘除
- js 加减乘除
- js 加减乘除
- js 加减乘除
- js加减乘除丢失精度问题解决方法
- js加减乘除丢失精度问题解决方法
- 获取js自身路径的方法
- 获取js自身路径的方法
- js脚本获取自身路径方法
- js 中加减乘除js 中加减乘除
- js 防止BACKSPACE键回退的JS方法
- 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
- 【webservice】关于WSDL
- 单片机学习之PWM原理与控制程序
- 图像处理之积分图应用四(基于局部均值的图像二值化算法)
- 小米手机无法读取图片路径的问题
- js 自定义加减乘除方法(防止js自身计算错误)
- Ubuntu 下使用命令行安装QT
- 截取文件后缀名的几种方式
- Java单链表的基本实现
- java 获取客户端IP地址
- //随记。关于存在换行符 \n 的文本限制 行数(在设置内容之前就知道有几行)收起展开是否需要显示 小记
- Hibernate的HQL、QBC、QBE查询总结
- Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
- 利用栈结构生成后缀表达式