Javascript数字格式化最小/最大小数

时间:2011-02-17 04:49:55

标签: javascript jquery numbers

我正在尝试创建一个可以格式化数字的函数,其最小小数位数为2,最大值为4.所以基本上如果我传入354545.33,我会回到354,545.33,如果我传入54433.6559943,我会得到返回54,433.6559。

function numberFormat(num){
    num = num+"";
    if (num.length > 0){

        num = num.toString().replace(/\$|\,/g,'');
        num = Math.floor(num * 10000) / 10000;

        num += '';
        x = num.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
        }
        return x1 + x2;

    }
    else{
        return num;
    }
}

2 个答案:

答案 0 :(得分:15)

2016年新解决方案

value.toLocaleString('en-US', {
    minimumFractionDigits: 2,
    maximumFractionDigits: 4
});

不要忘记包含polyfill

旧2011解决方案

要格式化零件,请在小数点后使用:

value.toFixed(4).replace(/0{0,2}$/, "");

小数点前的部分:How to write this JS function in best(smartest) way?

答案 1 :(得分:1)

你做错了。

54433.6559943.toFixed(4)将四舍五入。然后你必须修剪最多两个尾随零。