2015-05-07 27 views
1

我有一個奇怪的例子。 如果我這樣寫:圓形浮動,然後到語言環境字符串

parseFloat("12345,987").toLocaleString("slv") 

會如預期的結果(SLV已經逗號作爲小數點分隔符): 12.345,987

但是,如果我第一輪2位小數:

parseFloat("12345,987").toFixed(2).toLocaleString("slv") 

結果將始終與英文分隔符(點): 12,345.99

這是怎麼回事ossible? 它應該是:12.345,99

+1

parseFloat的輸出是一個數字,toFixed的輸出是一個字符串。 – Nit

回答

3

this answer描述,parseFloat()是指與僅小數,因此通過在一個字符串用逗號使用可導致意想不到的結果。

例如,我在JsFiddle中嘗試parseFloat("12345,987").toLocaleString("slv"),我的瀏覽器(英國語言環境)給了我12.345,這與您的結果不同。

另一點需要注意的是,toFixed()返回一個字符串,但toLocaleString()對數字進行操作。由於其他原因,將toLocaleString()應用於字符串也可能會產生意想不到的結果。

1

謝謝。我找到了一個解決方案: parseFloat(「12345,987」)。toLocaleString(「slv」,{minimumFractionDigits:2,maximumFractionDigits:2});

這工作正常。 「例如,我試過parseFloat(」12345,987「)。toLocaleString(」slv「)」

「djskinner」 - 您可以試試:「sl-SI」而不是slv嗎?它仍然不起作用嗎?

相關問題