2012-10-02 3 views
38

Ho una domanda sul comportamento predefinito della funzione parseFloat di JavaScript in diverse parti del mondo.JavaScript parseFloat in Culture diverse

Negli Stati Uniti, se si chiama parseFloat su una stringa "123.34", si otterrebbe un numero decimale 123.34.

Se sto sviluppando codice in Svezia o Brasile e usano una virgola anziché un punto come separatore decimale, la funzione parseFloat prevede "123,34" o "123,34".

Si prega di notare che non sto chiedendo come analizzare il formato numerico di una cultura diversa negli Stati Uniti. Sto chiedendo che parseFloat in Svezia o in Brasile si comportino come negli Stati Uniti, o si aspetta un numero nel suo formato locale? O per meglio pensarci, uno sviluppatore in Brasile/Svezia deve convertire stringhe in formato inglese prima di poter usare parseFloat dopo aver estratto il testo da una casella di testo?

Per favore fatemi sapere se questo non ha senso.

+1

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

risposta

54

parseFloat non utilizza la definizione della locale, ma la definizione di un valore decimale letterale.

Si analizza solo . non ,

io sono brasiliano e devo sostituire la virgola con punto prima analisi numeri decimali.

parseFloat specification

+0

Domanda risposta. Grazie mille per l'aiuto di tutti! – chumphries

3

Non è solo la Svezia/il Brasile. F.ex negli Stati Uniti spesso aggiungono virgole in grandi numeri, come $5,762,325.25.

La funzione parseFloat si occupa essenzialmente di decimali, non di stringhe locali.

In generale, JavaScript a volte in grado di convertire generici stringhe/numeri/date per locale-amichevoli formati, ma non il contrario.