码迷,mamicode.com
首页 > Web开发 > 详细

jquery数值精度计算

时间:2018-07-20 20:06:44      阅读:1205      评论:0      收藏:0      [点我收藏+]

标签:fun   number   equal   @param   odi   max   seq   get   var   

 
        /**
         *判断数值是否相等
         * @param source 原比较数据
         * @param target 目标比较数据
         * @param accuracy 精度值
         * @returns {boolean}
         */
        isEqual:function(source,target,accuracy){
            accuracy = accuracy == undefined ? 10:accuracy; //默认精度位10
            return parseFloat(source).toFixed(accuracy) ===  parseFloat(target).toFixed(accuracy);
        }
        /**
         *数值相加
         * @param firstNumber
         * @param lastNumber
         * @returns {number}
         */
        accuracyAdd:function(firstNumber,lastNumber){
            var num1,num2,m;
            try{num1=firstNumber.toString().split(".")[1].length}catch(e){num1=0};
            try{num2=lastNumber.toString().split(".")[1].length}catch(e){num2=0};
            m=Math.pow(10,Math.max(num1,num2));
            return (firstNumber*m+lastNumber*m)/m;
        }
        /**
         * 数值相减
         * @param firstNumber
         * @param lastNumber
         * @returns {string}
         */
        accuracySub:function(firstNumber,lastNumber){
        var r1,r2,m,n;
        try{r1=firstNumber.toString().split(".")[1].length}catch(e){r1=0}
        try{r2=lastNumber.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 ((firstNumber*m-lastNumber*m)/m).toFixed(n);
    }
        /**
         * 除法函数,两数相除
         * @param arg1
         * @param arg2
         * @returns {number}
         */
        accuracyDiv: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){}
        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}
         */
        accuracyMul: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)
    }

 

jquery数值精度计算

标签:fun   number   equal   @param   odi   max   seq   get   var   

原文地址:https://www.cnblogs.com/ewei/p/9343234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!