JavaScript在不同文化中的parseFloat
我有一个关于JavaScript的parseFloat函数在世界各地默认行为的问题。
在美国,如果你在string“123.34”上调用parseFloat,你会得到一个浮点数123.34。
如果我在瑞典或巴西开发代码,并且使用逗号而不是句号作为小数点分隔符,那么parseFloat函数的期望值是“123,34”还是“123.34”。
请注意,我不是在美国如何parsing不同文化的数字格式。 我问的是,瑞典或巴西的parseFloat行为与美国境内的行为方式是一样的,还是期望它的本地格式的数字? 或者,为了更好地考虑这个问题,巴西/瑞典的开发人员在从文本框中提取文本之后,是否必须将string转换为英文格式才能使用parseFloat?
请让我知道这是否没有道理。
parseFloat
不使用您的语言环境的定义,而是使用十进制文字的定义。
它只parsing.
不,
我是巴西人,在parsing十进制数字之前,必须用逗号replace逗号。
parseFloat规范
不, 指定parseFloat
来parsingDecimalLiterals
,它使用点作为小数点分隔符。 它不依赖于当前环境的区域设置。
这不仅仅是瑞典/巴西。 F.ex在美国,他们经常大量添加逗号,如$5,762,325.25
。
parseFloat
函数本质上处理小数,而不是区域设置string。
一般来说,JavaScript有时可以将通用string/数字/date转换为区域友好的格式,而不是相反。