十进制没有固定

时间:2015-01-22 03:04:31

标签: javascript

嗨我需要格式化我的号码以防止多次小数

我需要像

1.123 its good

1.12345678 its good too

1.12345678900001 format to 1.12345678 with maximum 8 decimal

现在我只使用一个函数来添加逗号但不能使用十进制

function commas(nStr)
{
    nStr += '';
    x = nStr.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;
}

由于

2 个答案:

答案 0 :(得分:0)

我建议你使用这个jQuery插件。您可以使用此插件格式化文本节点,根据需要输入节点的值。

如果您不想使用此插件,也可以参考格式化方法。

jQuery-formatmoney

您可以在此插件中引用format方法。

主要格式正则表达式是:

integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, options.thousands);

答案 1 :(得分:0)

也许这就是诀窍:

function commas(nStr,maxDecimals){
    var x = nStr.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    x1 = x1.replace('.',','); //replace . into ,
    x2 = x2.substr(0, maxDecimals) ; //select the max amount of decimals
    return x1 + x2;
}