zoukankan      html  css  js  c++  java
  • 数字工具类

    /**
     * @author: 苗士军
     * @description 数字工具类
     */
    NumberUtils = {
        /**
         * @description 定义0数字对象
         */
        zero: Number(0),
        /**
         * @description 判断是否是数字
         * @param val
         * @return {boolean}
         */
        isNumber: function (val) {
            if (val == '' || isNaN(val)) {
                return false;
            }
            return true;
        },
        /**
         * @description 转换数字对象
         * @param val
         * @return {*}
         */
        toNumber: function (val) {
            if (this.isNumber(val)) {
                return Number(val);
            } else {
                return this.zero;
            }
        },
        /**
         * @description 获取整数对象
         * @param val
         * @return {*}
         */
        parseInt: function (val) {
            return this.toNumber(parseInt(val));
        },
        /**
         * @description 获取小数对象
         * @param val
         * @return {*}
         */
        parseFloat: function (val) {
            return this.toNumber(parseFloat(val));
        },
        /**
         * @description  获取向上取整后的值
         * @param val
         * @return {*}
         */
        ceil: function (val) {
            return this.toNumber(Math.ceil(val));
        },
        /**
         * @description 获取小于x的最大整数
         * @param val
         * @return {*}
         */
        floor: function (val) {
            return this.toNumber(Math.floor(val));
        },
        /**
         * @description 获取四舍五入后的整数
         * @param val
         * @return {*}
         */
        round: function (val) {
            return this.toNumber(Math.round(val));
        },
        /**
         * @description 获取数字的最接近的单精度浮点型表示
         * @param val
         * @return {*}
         */
        fround: function (val) {
            return this.toNumber(Math.fround(val));
        },
        /**
         * @description 数字格式化
         * @param number 要格式化的数字
         * @param decimals 保留几位小数
         * @param decPoint 小数点符号
         * @param thousandsMark 千位符号
         * @param roundMode 舍入参数,默认 "ceil" 向上取,"floor"向下取,"round" 四舍五入
         * @return {string}
         */
        numberFormat: function (number, decimals, decPoint, thousandsMark, roundMode) {
            number = (number + '').replace(/[^0-9+-Ee.]/g, '');
            roundMode = roundMode || "ceil"; //"ceil","floor","round"
            var n = !isFinite(+number) ? 0 : +number,
                prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                sep = (typeof thousandsMark === 'undefined') ? ',' : thousandsMark,
                dec = (typeof decPoint === 'undefined') ? '.' : decPoint,
                s = '',
                toFixedFix = function (n, prec) {
                    var k = Math.pow(10, prec);
                    console.log();
                    return '' + parseFloat(Math[roundMode](parseFloat((n * k).toFixed(prec * 2))).toFixed(prec * 2)) / k;
                };
            s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
            var re = /(-?d+)(d{3})/;
            while (re.test(s[0])) {
                s[0] = s[0].replace(re, "$1" + sep + "$2");
            }
            if ((s[1] || '').length < prec) {
                s[1] = s[1] || '';
                s[1] += new Array(prec - s[1].length + 1).join('0');
            }
            return s.join(dec);
        }
    }
  • 相关阅读:
    [无聊测试赛] T12 道路
    [无聊测试赛] T9 矩阵覆盖
    [无聊测试赛] T10 所驼门王的宝藏
    [无聊测试赛] T8 佳佳的魔法药水
    [无聊测试赛] T7 豪华游轮
    [无聊测试赛] T6 排行榜
    【模板】三分求函数极值
    树的重心模板
    倍增最近公共祖先(LCA)
    ccf201612题解
  • 原文地址:https://www.cnblogs.com/miaosj/p/10677305.html
Copyright © 2011-2022 走看看