2012-10-02 14 views
38

Mam pytanie dotyczące domyślnego zachowania funkcji parseFloat JavaScript w różnych częściach świata.JavaScript parseFloat w różnych kulturach

W Stanach Zjednoczonych, jeśli wywołasz funkcję parseFloat na ciągu "123.34", otrzymasz liczbę zmiennoprzecinkową 123.34.

Jeśli zajmuję się tworzeniem kodu na przykład w Szwecji lub Brazylii i używają przecinka zamiast kropki jako separatora dziesiętnego, funkcja parseFloat oczekuje wartości "123,34" lub "123.34".

Uwaga: nie pytam, jak przeanalizować format numeru innej kultury w USA. Pytam czy parseFloat w Szwecji czy Brazylii zachowuje się tak samo jak w Stanach Zjednoczonych, czy oczekuje liczby w lokalnym formacie? A może lepiej się nad tym zastanowić, czy deweloper w Brazylii/Szwecji musi przekonwertować łańcuchy na format angielski, zanim będzie mógł korzystać z parseFloat po wyodrębnieniu tekstu z pola tekstowego?

Proszę dać mi znać, jeśli to nie ma sensu.

+1

Podobny do: http://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript – dyoo

Odpowiedz

54

parseFloat nie używa definicji Twojego regionu, ale definicji litery dziesiętnej.

Analizuje nie tylko .,

Jestem brazylijski i muszę zastąpić przecinek z kropką przed parsowania liczb dziesiętnych.

parseFloat specification

+0

Pytanie odpowiedziało. Dziękuję bardzo za pomoc wszystkim! – chumphries

3

To nie tylko Szwecja/Brazylia. F.ex w USA często dodają przecinki w dużych ilościach, np. $5,762,325.25.

Funkcja parseFloat zasadniczo zajmuje się liczbami dziesiętnymi, a nie locale.

Ogólnie rzecz biorąc, JavaScript może czasami konwertować standardowe łańcuchy/liczby/daty na formaty przyjazne dla ustawień lokalnych, ale nie na odwrót.

Powiązane problemy