JavaScript parseFloat in Different Cultures

邮差的信 提交于 2019-12-17 12:11:39

问题


I have a question about the default behavior of JavaScript's parseFloat function in different parts of the world.

In the US, if you call parseFloat on a string "123.34", you'd get a floating point number 123.34.

If I'm developing code in say Sweden or Brazil and they use a comma instead of a period as the decimal separator, does the parseFloat function expect "123,34" or "123.34".

Please note that I'm not asking how to parse a different culture's number format in the US. I'm asking does parseFloat in Sweden or Brazil behave the same way it does inside the US, or does it expect a number in its local format? Or to better think about this, does a developer in Brazil/Sweden have to convert strings to English format before it can use parseFloat after extracting text from a text box?

Please let me know if this doesn't make sense.


回答1:


parseFloat doesn't use your locale's definition, but the definition of a decimal literal.

It only parses . not ,

I'm brazilian and I have to replace comma with dot before parsing decimal numbers.

parseFloat specification




回答2:


No, parseFloat is specified to parse DecimalLiterals, which use the dot as decimal separator. It does not depend on the current environment's locale settings.




回答3:


It’s not just Sweden/Brazil. F.ex in US they often add commas in large numbers, like $5,762,325.25.

The parseFloat function essentially deals with decimals, not locale strings.

In general, JavaScript can sometimes convert generic strings/numbers/dates to locale-friendly formats, but not the other way around.



来源:https://stackoverflow.com/questions/12694455/javascript-parsefloat-in-different-cultures

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!