我有一个关于JavaScript的parseFloat函数在世界不同地方的默认行为的问题 .
在美国,如果在字符串“123.34”上调用parseFloat,则会得到一个浮点数123.34 .
如果我在瑞典或巴西开发代码并且他们使用逗号而不是句点作为小数分隔符,那么parseFloat函数是否期望“123,34”或“123.34” .
请注意,我不是在问美国如何解析不同文化的数字格式 . 我问的是,瑞典或巴西的parseFloat在美国的行为方式是否相同,或者是否期望以本地格式提供数字?或者为了更好地考虑这一点,巴西/瑞典的开发人员是否必须先将字符串转换为英文格式,然后才能在从文本框中提取文本后使用parseFloat?
如果这没有意义,请告诉我 .
3 回答
不,parseFloat is specified解析DecimalLiterals,它使用点作为小数分隔符 . 它不依赖于当前环境的区域设置 .
parseFloat
不是't use your locale'的定义,而是十进制文字的定义 .它只解析
.
而不是,
我是巴西人,在解析十进制数字之前我必须用点替换逗号 .
parseFloat specification
这不仅仅是瑞典/巴西 . 美国的F.ex经常会大量添加逗号,比如
$5,762,325.25
.parseFloat
函数主要处理小数,而不是语言环境字符串 .通常,JavaScript有时可以将通用字符串/数字/日期转换为适合语言环境的格式,但不是相反 .