数据精确计算

15 篇文章 0 订阅
6 篇文章 0 订阅

<SCRIPT language="JavaScript" src="<%=request.getContextPath()%>/scripts/module/sh/cargo/utils/formutil.js"></SCRIPT>

 

/**
 * 2013-10-24 奉小翔
 * 调用方法:1、
 * $.add(a,b);
 * $.sub(a,b);
 * $.mul(a,b);
 * $.div(a,b);
 * 调用方法:2、
 * a.add(b);
 * a.sub(b);
 * a.mul(b);
 * a.div(b);
 * 关于多个参数方法调用
 * $.addMore(a,b,c...);
 * $.subMore(a,b,c...);
 * $.mulMore(a,b,c...);
 * $.divMore(a,b,c...); 
 */
(function($){$.extend({add:function(a,b){return accAdd(a,b)},sub:function(a,b){return accSub(a,b)},mul:function(a,b){return accMul(a,b)},div:function(a,b){return accDiv(a,b)},addMore:function(){var result=0;for(var i=0;i<arguments.length;i++){result=accAdd(result,arguments[i])}return parseFloat(result)},subMore:function(){var result=arguments[0];for(var i=1;i<arguments.length;i++){result=accSub(result,arguments[i])}return parseFloat(result)},mulMore:function(){var result=arguments[0];for(var i=1;i<arguments.length;i++){result=accMul(result,arguments[i])}return parseFloat(result)},divMore:function(){var result=arguments[0];for(var i=1;i<arguments.length;i++){result=accDiv(result,arguments[i])}return parseFloat(result)}})})(jQuery);Number.prototype.sub=function(arg){return accSub(this,arg)};Number.prototype.add=function(arg){return accAdd(this,arg)};Number.prototype.mul=function(arg){return accMul(this,arg)};Number.prototype.div=function(arg){return accDiv(this,arg)};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 Math.round(arg1*m+arg2*m)/m}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));n=(r1>=r2)?r1:r2;return parseFloat(((arg1*m-arg2*m)/m).toFixed(n))}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)}}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)};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值