2015-06-11 146 views
1

嘗試在歐洲文化中將數字格式化爲兩位小數格式。所以逗號是小數點分隔符和空格千位分隔符。歐洲格式的帶兩位小數的格式編號

在例如格式應爲213 245,00

我怎麼能這樣做?

213245.toFixed(2).toLocaleString(); 

213245.00,但它應該是213 245,00

然而

213245.toLocaleString() 

擺弄下文:

var out, input; 
input = 213245; 

// TEST 1 
out = input.toFixed(2); 
console.log(out); // 213245.00 
out = out.toLocaleString(); 
console.log(out); // 213245.00 

// TEST 2 
out = input.toLocaleString(); 
console.log(out); // 213 245 

https://jsfiddle.net/rootnode/8p2vad8u/7/

+0

http://stackoverflow.com/questions/6784894/ad d-commas-or-spaces-to-group-every-three-digits – adeneo

+0

您確定您的語言環境設置正確嗎? – feeela

+0

如果考慮213245.toFixed(2).toLocaleString();作爲一個字符串,你可以使用replace()函數來替換'。'。 ',' – user1929959

回答

4

當您使用Number.toFixed()你獲得字符串(不是數字了)。因此,隨後調用.toLocaleString()將啓動對數字一無所知的通用Object.toLocaleString()方法,而不是您想要的Number.toLocaleString()

在看看文件,我們可以組成這樣的事情(在Firefox測試):

> Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2}); 
"213.245,00" 

console.log(Number(213245).toLocaleString("es-ES", {minimumFractionDigits: 2}));

像往常一樣,因爲它往往與新增加的發生語言,browser support使這不適合當前的萬維網:)