2012-10-02 58 views
38

我對JavaScript的parseFloat函數在世界各地的默認行爲有疑問。不同文化中的JavaScript parseFloat

在美國,如果你在字符串「123.34」上調用parseFloat,你會得到一個浮點數123.34。

如果我開發的代碼說瑞典或巴西,他們使用一個逗號,而不是句點作爲小數點分隔符,並在parseFloat函數期望「123,34」或「123.34」。

請注意,我並不是要求在美國如何解析不同文化的數字格式。我問的是,瑞典或巴西的parseFloat行爲與美國境內的行爲方式一樣嗎?還是期望其本地格式的數字?或者,爲了更好地考慮這一點,巴西/瑞典的開發人員在從文本框中提取文本之後是否必須將字符串轉換爲英文格式,然後才能使用parseFloat?

請讓我知道,如果這沒有意義。

+1

類似於:http://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript – dyoo

回答

54

parseFloat不使用您的語言環境的定義,而是使用十進制文字的定義。

它只解析.沒有,

我是巴西人,我有解析十進制數字前用點來代替逗號。

parseFloat specification

+0

已回答的問題。非常感謝大家的幫助! – chumphries

3

這不僅僅是瑞典/巴西。 F.ex在美國,他們經常大量添加逗號,如$5,762,325.25

parseFloat函數本質上處理小數點而不是區域設置字符串。

通常,JavaScript有時可以將通用字符串/數字/日期轉換爲區域友好型格式,但不能以其他方式進行轉換。