2013-06-20 155 views
0

我正在使用數學javascript,並且在使用逗號代替點和逗號的逗號時遇到了一些麻煩。我可以得到千位分隔符的逗號來改變,但不能設法讓小數點變成逗號。我嘗試了其他帖子的一些建議,沒有任何喜悅。目標是爲希臘應用程序實現數字格式。Javascript Math用逗號代替點/小數

這是我有:

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

檢查這個問題的答案:http://stackoverflow.com/questions/1068284/format-numbers-in-javascript – cfs

+1

我無法理解你的問題,你可以發佈一個示例數據,如: '1234,89'變成'1,234.89' –

+0

你想要千位分隔符*和*爲小數點的逗號嗎?請更具體的預期產出,也許增加一些例子。 – Bergi

回答

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

2

這裏有一個務實的做法:

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

基本上無效字符替換一個字符和替換以後。