Come dimostrato da un altro risposte qui, ci sono diversi modi per eseguire la conversione:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
mi piacerebbe parlare più una cosa sulla parseInt
però.
Quando si utilizza parseInt
, è opportuno che il parametro passi sempre il parametro. Per la conversione decimale, ovvero 10
. Questo è il valore predefinito per il parametro, che è il motivo per cui può essere omesso. Per binario, è un 2
e 16
per esadecimale. In realtà, qualsiasi radix tra e compreso 2 e 36 funziona.
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
La funzione parseInt
, beh, analizza le stringhe di convertirli in numeri. In alcune implementazioni JS, parseInt
analizza zeri iniziali come ottale:
Sebbene scoraggiano ECMAScript 3 e proibito dalla ECMAScript 5, molte implementazioni interpretano una stringa numerica che inizia con uno 0 come ottale. Il seguente potrebbe avere un risultato ottale o potrebbe avere un risultato decimale. Specificare sempre una radice per evitare questo comportamento inaffidabile.
- MDN
Il fatto che il codice diventa più chiaro è un bel effetto collaterale di specificando il parametro radix.
Poiché parseFloat
analizza solo le espressioni numeriche in Radix 10, non è necessario un parametro di radix qui.
Maggiori informazioni su questo:
fonte
2017-06-10 19:31:22
'var = aNumber "1";' –
Eventuali duplicati di [a macchina, Come controllare se una stringa è Numeric] (http://stackoverflow.com/questions/23437476/in-typescript -come-per-verificare-se-una-stringa-è-numerico) –