2012-10-02 8 views
38

Ich habe eine Frage über das Standardverhalten von JavaScript parseFloat Funktion in verschiedenen Teilen der Welt.JavaScript parseFloat in verschiedenen Kulturen

Wenn Sie in den USA parseFloat für eine Zeichenfolge "123.34" aufrufen, erhalten Sie eine Gleitkommazahl 123.34.

Wenn ich Code in Schweden oder Brasilien entwickle und sie ein Komma anstelle eines Punktes als Dezimaltrennzeichen verwenden, erwartet die ParseFloat-Funktion "123,34" oder "123,34".

Bitte beachten Sie, dass ich nicht frage, wie man das Zahlenformat einer anderen Kultur in den USA analysiert. Ich frage, ob sich parseFloat in Schweden oder Brasilien genauso verhält wie in den USA, oder erwartet sie eine Nummer in ihrem lokalen Format? Oder um besser darüber nachzudenken, muss ein Entwickler in Brasilien/Schweden Zeichenfolgen in das englische Format konvertieren, bevor er parseFloat nach dem Extrahieren von Text aus einer Textbox verwenden kann?

Bitte lassen Sie mich wissen, wenn dies keinen Sinn ergibt.

+1

Ähnlich wie: http://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript – dyoo

Antwort

54

verwendet nicht die Definition Ihres Gebietsschemas, sondern die Definition eines Dezimal-Literals.

lediglich eine syntaktische Analyse . nicht ,

Ich bin brasilianisch, und ich habe vor Parsen Dezimalzahlen Komma mit Punkt zu ersetzen.

parseFloat specification

+0

Frage beantwortet. Vielen Dank für die Hilfe alle! – chumphries

3

Es ist nicht nur Schweden/Brasilien. ZB in den USA fügen sie häufig Kommas in großen Zahlen hinzu, wie $5,762,325.25.

Die Funktion beschäftigt sich im Wesentlichen mit Dezimalstellen, nicht mit lokalen Strings.

Im Allgemeinen kann JavaScript manchmal generische Zeichenfolgen/Zahlen/Datumsangaben in länderspezifische Formate konvertieren, aber nicht umgekehrt.

Verwandte Themen