不同文化中的 JavaScript parseFloat

IT技术 javascript culture
2021-02-20 18:51:39

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

在美国,如果您对字符串“123.34”调用 parseFloat,您将得到一个浮点数 123.34。

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

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

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

3个回答

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

它只解析.,

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

parseFloat 规范

问题回答。非常感谢大家的帮助!
2021-05-08 18:51:39

不,parseFloat被指定为 parse DecimalLiterals,它使用点作为小数点分隔符。它不依赖于当前环境的区域设置。

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

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

通常,JavaScript 有时可以将通用字符串/数字/日期转换为语言环境友好的格式,但反过来不行。