js的算术运算
来源:互联网 发布:创维网络电视价格 编辑:程序博客网 时间:2024/05/16 18:49
做js经常要进行一些数学运算,里面的一些的函数能带来一些方便
1.加法:
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; }2.减法:
function subtr(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(2); }3.乘法
/** ** 乘法函数,用来得到精确的乘法结果 ** 说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。 ** 调用:accMul(arg1,arg2) ** 返回值:arg1乘以 arg2的精确结果 **/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);}4.除法
/** ** 除法函数,用来得到精确的除法结果 ** 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。 ** 调用:accDiv(arg1,arg2) ** 返回值:arg1除以arg2的精确结果 **/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); }}5.把数字转换为中文大写
function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = "千百拾亿千百拾万千百拾元角分", str = ""; n += "00"; var p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p+1, 2); unit = unit.substr(unit.length - n.length); for (var i=0; i < n.length; i++) str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i); return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");}
6.格式化数字的小数点位数
function fnumber(s,fixed) {if(s){if(s==""){return 0.00;}s = $.trim(s);for(var i = 0; i < s.length; i++) {s = s.replace(",", "");if(s.indexOf(",") < 0) {break;}}if(fixed)return parseFloat(s).toFixed(fixed);elsereturn parseFloat(s);}}
//格式化数字为2位小数金额,逗号隔开function fmoney(s) { var str = parseFloat((s + "").replace(/[^\d\.-]/g, "")) + ""; var l = str.split(".")[0].split("").reverse(); var r = str.split(".")[1]; var r_num = 0; var flag = false; if(r != undefined && r.length >= 3 && parseFloat(r.charAt(2)) >= 5) { flag = true; } if(r != undefined && r.length >= 3) { r = r.substring(0,2); } if(flag) { var temp = "0." + r; temp = (parseFloat(temp) + 0.01) + ""; if(temp.length < 5){ r = temp.substring(2); } else { r = temp.substring(2,4); } } if(r == undefined) { r = "00"; } if(r.length == 1) { r = r + "0"; } t = ""; for(i = 0; i < l.length; i ++ ) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); } var money = t.split("").reverse().join("") + "." + r; if(money.charAt(0) == "-" && money.charAt(1) == ",") { money = money.replace(",",""); } return money=="0.00"?"0":money; }
0 0
- js的算术运算
- js 中的算术运算
- js 中的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- matlab的算术运算
- 指针的算术运算
- 指针的算术运算
- 算术运算的应用
- 指针的算术运算
- 算术运算符的运算
- 【js学习笔记-008】--数字.算术运算
- js中执行算术运算注意点
- 关于 js 算术运算时精度问题
- datepicker 设置默认日期
- AngularJS开发前端表格组件
- 算法笔记_061-蓝桥杯练习 字串统计(Java)
- 登录界面CheckBox记住密码
- IntelliJ IDEA 注册码
- js的算术运算
- Android Studio2.3正式版发布,包含一些新特性
- Hanoi 问题
- 使用WinInet访问没有证书的Https (GET/POST)
- VS2013+VSRS4.0+OPENCV2.4.13
- 浅析TCP的四种内部计时器
- Linux下VirtualBox虚拟机的命令行启动/关闭方法和开机自动启动
- 3.8妇女节促销怎么玩?H5方案拿走不谢!
- 1013