价格格式化--小数保留两位,整数部分用千分号分割

时间:2022-11-10 20:15:18

在涉及到价格展示的时候,一般 有千分号分割和保留两位小数的需求

    //保留两位小数以及千分位的分隔符
    function toDoubleThousands(num) {
        if (!num) {
            return "0.00";
        }

        //判断是否有小数点
        var s = num.toString().indexOf(".");
        if (s == -1) {//是整数
            return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + ".00";
        } else {//是小数
            var arr = num.toString().split(".");
            if (arr.length > 1 && arr[1].length < 2) {//一位小数
                return (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + "." + arr[1] + "0";
            } else {//两位小数
                return (arr[0] || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') + "." + arr[1][0] + arr[1][1];
            }
        }
    }