Come mostrato da altre risposte qui, ci sono diversi modi per fare la conversione:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
Vorrei citare ancora una cosa parseInt
.
Durante l'utilizzo parseInt
, ha senso passare sempre il parametro radix . Per la conversione decimale, cioè 10
. Questo è il valore predefinito per il parametro, motivo per cui può essere omesso. Per binario, è un 2
e 16
per esadecimale. In realtà, qualsiasi radix tra e compreso 2 e 36 opere.
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
La parseInt
funzione, beh, analizza le stringhe per convertirle in numeri. In alcune implementazioni di JS, parseInt
analizza gli zeri iniziali come ottali:
Sebbene scoraggiato da ECMAScript 3 e proibito da ECMAScript 5, molte implementazioni interpretano una stringa numerica che inizia con uno 0 iniziale come ottale. Quanto segue può avere un risultato ottale o può avere un risultato decimale. Specifica sempre una radice per evitare questo comportamento inaffidabile.
- MDN
Il fatto che il codice diventi più chiaro è un piacevole effetto collaterale della specifica del parametro radix.
Poiché parseFloat
analizza solo espressioni numeriche in radix 10, qui non è necessario un parametro radix.
Maggiori informazioni su questo: