我正在使用数学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);
}
答案 0 :(得分:2)
这是一种实用的方法:
var newString = '2,000.80'.replace(',','#').replace('.',',').replace('#','.');
//> '2.000,80'
基本上用虚拟角色替换一个角色,稍后再替换它。
答案 1 :(得分:0)
我建议使用Globalize library。它允许您轻松地进行数字全球化。以下示例取自documentation page并显示使用特定文化输出数字:
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