0

我正在使用数学 javascript,但在将逗号替换为点,将点替换为逗号时遇到了一些麻烦。我可以让千位分隔符的逗号改变,但无法让小数点变成逗号。我没有高兴地尝试了其他帖子的一些建议。目标是实现希腊应用程序的数字格式。

这是我所拥有的:

function addCommas(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');
        x2 = x.replace(/,([^,]*)$/, ".$1");
    }
    return x1 + x2;
}

function addCommas2(nStr, nztr) {
    var sam = nStr.toFixed(nztr);
    return sam;
}

function roundNumber(num, dec) {
    return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);

}
4

2 回答 2

2

这是一个务实的方法:

var newString = '2,000.80'.replace(',','#').replace('.',',').replace('#','.');
//> '2.000,80'

基本上用一个虚拟字符替换一个字符,然后再替换它。

于 2013-06-20T12:31:54.537 回答
0

我建议使用Globalize 库。它使您可以轻松地进行数字全球化。以下示例取自文档页面,显示使用特定文化输出数字:

Globalize.culture( "en" );
Globalize.format( 1234.567, "n" ); // "1,234.57"

Globalize.culture( "nl" );
Globalize.format( 1234.567, "n" ); // "1.234,57" - note that the comma and dot are switched

我创建了一个小示例项目,展示了如何使用这个库进行客户端全球化:https ://github.com/ErikSchierboom/clientsideglobalization

于 2013-06-20T12:31:28.850 回答