分享一个JS小数/超位数输出格式化的方法

在JS中,小数的格式化需要使用.toFixed(),但是这个方法要输入小数位数,对于不定长的小数来说是不方便的,所以分享一个小数的格式化方法。

public static getFloatString (strNum: number): string {
    let str = String(strNum);
    if (str.indexOf("e") !== -1) {
        let strArr = str.split("e");
        let factor = strArr[0].split(".");
        let powNum = parseInt(strArr[1]);
        if (powNum < 0) {
            return "0" + "." + "0".repeat(-powNum - factor[0].length) + factor[0] + (factor.length === 2 ? factor[1] : "");
        } else {
            if (factor.length === 2) {
                let dotNum = powNum - factor[1].length;
                if (dotNum < 0) {
                    let sli = factor[1].slice(0, -dotNum);
                    return factor[0] + sli[0] + "." + sli[1];
                } else {
                    return factor[0] + factor[1] + "0".repeat(dotNum - factor[0].length);
                }
            } else {
                return factor[0] + "0".repeat(powNum - factor[0].length);
            }
        }
    } else {
        return str;
    }
}

可以直接放到Util类中备用。