WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2025-03-27 0396d398bea811f5650d04ce5b55a232b4f58b98
common/Tools.js
@@ -461,7 +461,7 @@
    /**
     * 数值转换为千分位格式
     * @param {Number|String} number - 传入的值
     * @param {String} decimalFormat - 处理小数的方式  - notRetain(不保留小数,没有小数时才生效),keepTwo(保留两位小数),keepThree(保留三位小数)
     * @param {String} decimalFormat - 处理小数的方式  - notRetain(不保留小数,有小数时也会去掉小数位),keepTwo(保留两位小数),keepThree(保留三位小数)
     * @return {string}
     */
    static thousandFormat(number, decimalFormat = 'keepTwo') {
@@ -477,9 +477,7 @@
        // 没有小数位
        if (!(num.indexOf('.') > -1)) {
            needThousand = num.toString();
            if (decimalFormat === 'notRetain') {
                decimals = '';
            } else if (decimalFormat === 'keepTwo') {
            if (decimalFormat === 'keepTwo') {
                decimals = '00';
            } else if (decimalFormat === 'keepThree') {
                decimals = '000';
@@ -489,9 +487,9 @@
        else if (num.indexOf('.') > -1) {
            needThousand = num.split('.')[0].toString();
            if (decimalFormat === 'keepTwo') {
                decimals = Number(num?.split('.')[1])?.toFixed(2)?.split('.')[1] || '';
                decimals = Number(num).toFixed(2).split('.')[1] || '';
            } else if (decimalFormat === 'keepThree') {
                decimals = Number(num?.split('.')[1])?.toFixed(3)?.split('.')[1] || '';
                decimals = Number(num).toFixed(3).split('.')[1] || '';
            }
        }
        // 计算整数位长度
@@ -506,7 +504,9 @@
            let temp = '';
            // 对整数取余
            let remainder = len % 3;
            decimals ? (temp = '.' + decimals) : temp;
            if (decimals) {
                temp = '.' + decimals;
            }
            if (remainder > 0) {
                // 不是3的整数倍
                return (
@@ -652,6 +652,32 @@
            }
        };
    }
    /**
     * 精确保留小数点几位数, 自动补零, 四舍五入
     *  修复 toFixed 四舍六入五讨论的问题
     * @param {Number|String} num 数值
     * @param {Number} [digit=0] 小数点后位数
     * @returns {String|NaN}
     */
    static accFixed(num, digit = 0) {
        const number = parseFloat(num);
        if (isNaN(number)) {
            return NaN;
        }
        if (number >= 0) {
            return (
                Math.round((number + Number.EPSILON) * Math.pow(10, digit)) / Math.pow(10, digit)
            ).toFixed(digit);
        } else {
            return (
                '-' +
                (
                    Math.round((Math.abs(number) + Number.EPSILON) * Math.pow(10, digit)) /
                    Math.pow(10, digit)
                ).toFixed(digit)
            );
        }
    }
}
// h5 中,实现 rem 转换 px