• js 加减乘除以及四舍五入 新写法


    1 四舍五入

    eg: (1.23).round() = 1.2

    (1.2456).round(3) = 1.246

    Number.prototype.round = function (count) {
        var res = 0;
        var val = this.toString();
        var num = parseInt(count || 2);
        var dataArr = val.split('.');
        var arr1 = dataArr[0] || "";
        var arr2 = dataArr[1] || "";
        var newArr2 = arr2;
        if (arr2.length > num) {
          var lastNum = arr2.substring(num, num + 1);
          if (parseInt(lastNum) >= 5) {
            newArr2 = parseInt(newArr2.substring(0, num)) + 1;
            newArr2 = newArr2.toString();
            if(newArr2.length<num){
              for(var i =0; i< (num - newArr2.length); i ++){
                newArr2 = "0" + newArr2;
              }
            }
            else if (newArr2.length > num) {
                arr1 = (parseInt(arr1) + 1).toString();
                newArr2 = newArr2.substring(1, 3);
            }
          }
        }
    
        val = parseFloat(arr1 + '.' + newArr2);
        res = parseFloat(val.toFixed(num));
        return res;
      }

    2 加减乘除

    eg: (1).plus(2) = 3

    if (!Number.prototype.plus) { //'+'
        Number.prototype.plus = function (addend) {
            var arg1 = this,
                arg2 = addend;
            var r1,
                r2,
                m,
                num1,
                num2;
            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));
            num1 = r1 == 0 ? parseInt(arg1 * m) : (parseInt(`${arg1.toString().replace('.', '')}`) * m / (Math.pow(10, r1)));
            num2 = r2 == 0 ? parseInt(arg2 * m) : (parseInt(`${arg2.toString().replace('.', '')}`) * m / (Math.pow(10, r2)));
            return (num1 + num2) / m;
        }
    }
    
    if (!Number.prototype.minus) { //'-'
        Number.prototype.minus = function (Subtraction) {
            var arg1 = this,
                arg2 = Subtraction;
            var r1,
                r2,
                m,
                n,
                num1,
                num2;
            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;
            num1 = r1 == 0 ? parseInt(arg1 * m) : (parseInt(`${arg1.toString().replace('.', '')}`) * m / (Math.pow(10, r1)));
            num2 = r2 == 0 ? parseInt(arg2 * m) : (parseInt(`${arg2.toString().replace('.', '')}`) * m / (Math.pow(10, r2)));
            return parseFloat(((num1 - num2) / m).toFixed(n));
        }
    }
    
    if (!Number.prototype.multiply) { //'*'
        Number.prototype.multiply = function (multiple) {
            var arg1 = this,
                arg2 = multiple;
            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)
        }
    
        if (!Number.prototype.devide) { //'/'
            Number.prototype.devide = function (divisor) {
                var arg1 = this,
                    arg2 = divisor;
                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) { }
                r1 = Number(arg1.toString().replace(".", ""))
                r2 = Number(arg2.toString().replace(".", ""))
                return (r1 / r2).multiply(Math.pow(10, t2 - t1));
            }
        }
    }
  • 相关阅读:
    [JavaScript]使用setTimeout减少多余事件
    Spring.NET教程(二)——环境搭建(基础篇) (转)
    IIS开启GZIP压缩效率对比及部署方法 (转)
    提高表格操作的十五款jQuery插件
    SQLServer和Oracle常用函数对比
    [hystar整理]Entity Framework 教程
    Remoting方法重载遇到的一个问题
    异变: input的背景background
    实时股票数据接口
    发现并解决ASP.NET内存耗尽(OOM),让服务器"永不重启"
  • 原文地址:https://www.cnblogs.com/zxhome/p/10342313.html
Copyright © 2020-2023  润新知