js custom arithmetic method (js itself prevents calculation errors)

<!DOCTYPE html>
<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>

    <body>
        <script type="text/javascript">
            /**
             * 乘法
             * @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 
                } 
                the try { 
                    R2 = arg2.toString (). Split ( " . " ) [ . 1 ] .length 
                } the catch (E) { 
                    R2 = 0 
                } 
                m = Math.pow ( 10 , Math.max (R1, R2 ));
                 // Last Modify by deeka
                 // dynamic control accuracy of length 
                n-= (R1> = R2)? R1: R2;
                 return ((m * arg1 - arg2 * m) / m) .toFixed (n-);
            } 

            The console.log (accMul ( 7.88 , 0.8 ) + ' --7.88 ------ * 0.8 multiplication ' ); // multiply 
            the console.log (accDiv ( 7.88 , 0.8 ) + ' --7.88 / 0.8-- ---- division ' ); // divide 
            the console.log (accAdd ( 7.88 , 0.8 ) + ' --7.88 + 0.8 ------ adder ' ); // adding 
            the console.log (accSub ( 7.88 , 0.8 ) + ' --7.88-0.8 ------ subtractor ' ); // subtraction
        </script>
    </body>

</html>

Copy the code introduced directly call up the package

Guess you like

Origin www.cnblogs.com/1212dsa/p/11428708.html