不同文化中的JavaScript parseFloat

时间:2012-10-02 16:33:24

标签: javascript culture

我有一个关于JavaScript的parseFloat函数在世界不同地方的默认行为的问题。

在美国,如果你在一个字符串“123.34”上调用parseFloat,你会得到一个浮点数123.34。

如果我在瑞典或巴西开发代码并且他们使用逗号而不是句点作为小数分隔符,那么parseFloat函数是否期望“123,34”或“123.34”。

请注意,我不是在问美国如何解析不同文化的数字格式。我问的是瑞典或巴西的parseFloat在美国的表现方式是否相同,或者它是否期望以本地格式显示数字?或者为了更好地考虑这一点,巴西/瑞典的开发人员是否必须先将字符串转换为英文格式,然后才能在从文本框中提取文本后使用parseFloat?

如果这没有意义,请告诉我。

3 个答案:

答案 0 :(得分:61)

parseFloat不使用您的语言环境定义,而是使用十进制文字的定义。

它只解析.而非,

我是巴西人,在解析十进制数字之前我必须用点替换逗号。

parseFloat specification

答案 1 :(得分:9)

不,parseFloat is specified来解析DecimalLiterals,它使用点作为小数分隔符。它不依赖于当前环境的区域设置。

答案 2 :(得分:4)

这不仅仅是瑞典/巴西。 F.ex在美国他们经常添加大量逗号,如$5,762,325.25

parseFloat函数主要处理小数,而不是语言环境字符串。

通常,JavaScript有时可以将通用字符串/数字/日期转换为适合语言环境的格式,但不是相反。