Articolo originale: How to Convert a String to a Number in JavaScript
Ci sono molti modi pe convertire una stringa in un numero usando JavaScript. Ma qual è in codice nella pratica?
In questo articolo, ti mostrerò 11 modi per convertire una stringa in un numero.
Qui c'è uno Scrim interattivo su come convertire una stringa in un numero in JavaScript
Come convertire una stringa in un numero in JavaScript usando la funzione Number()
Un modo per convertire una stringa in un numero è utilizzare la funzione Number()
.
In questo esempio, abbiamo una stringa denominata quantity
con il valore "12"
.
const quantity = "12";
Se usiamo l'operatore typeof
su quantity
, otteniamo come risultato il tipo stringa.
console.log(typeof quantity);

Possiamo convertire quantity
in un numero utilizzando la funzione Number
in questo modo:
Number(quantity)
Possiamo controllare come questa variabile sia ora un numero utilizzando l'operatore typeof
nuovamente:
console.log(typeof Number(quantity));

Se si prova a passare come argomento un valore che non può essere convertito in un numero, allora il valore risultante sarà NaN
("Not a Number", letteralmente "non un numero").
console.log(Number("awesome"));

Come convertire una stringa in un numero in JavaScript usando la funzione parseInt()
Un altro modo per convertire una stringa in un numero è utilizzare la funzione parseInt()
. Questa funzione prende come argomento una stringa e, opzionalmente, una radice.
Una radice è un numero tra 2 e 36 che rappresenta la base in un sistema numerico. Per esempio, una radice pari a 2 rappresenta il sistema binario, mentre la radice 10 rappresenta il sistema decimale.
Possiamo utilizzare la variabile quantity
già usata in precedenza e convertirla in un numero:
const quantity = "12";
console.log(parseInt(quantity, 10));
Cosa succede se provo a cambiare la variabile quantity
in "12.99"
? Il risultato utilizzando parseInt()
sarà il numero 12.99?
const quantity = "12.99";
console.log(parseInt(quantity, 10));

Come puoi vedere, il risultato è un numero intero arrotondato. Se desideravi come risultato un numero in virgola mobile (floating point number), allora avresti dovuto utilizzare parseFloat()
.
Come convertire una stringa in un numero in JavaScript usando la funzione parseFloat()
La funzione parseFloat()
prende come argomento un valore e restituisce come risultato un numero floating point. Esempi di numeri floating point sono 12.99 e 3.14.
Se modifichiamo il nostro esempio precedente per usare parseFloat()
, il risultato sarà il numero floating point 12.99.
const quantity = "12.99";
console.log(parseFloat(quantity));

Nel caso in cui fossero presenti spazi bianchi nella stringa prima o dopo il valore che deve essere convertito, la funzione parseFloat()
effettuerà ugualmente la conversione.
const quantity = " 12.99 ";
console.log(parseFloat(quantity));

Se il primo carattere nella stringa non può essere convertito in un numero, allora parseFloat()
restituirà NaN
.
const quantity = "F12.99";
console.log(parseFloat(quantity));

Come convertire una stringa in un numero in JavaScript usando l'operatore unario più (+
)
L'operatore unario più (+
) convertirà una stringa in un numero. L'operatore deve essere posizionato prima dell'operando.
const quantity = "12";
console.log(+quantity);

Possiamo anche usare l'operatore unario più (+
) per convertire una stringa in un numero floating point.
const quantity = "12.99";
console.log(+quantity);

Se il valore della stringa non può essere convertito in un numero, allora il risultato sarà NaN
.
const quantity = "awesome";
console.log(+quantity);

Come convertire una stringa in un numero in JavaScript moltiplicando la stringa per il numero 1
Un altro modo per convertire una stringa in un numero è utilizzare una operazione matematica di base. Puoi moltiplicare il valore della stringa per 1 ed otterrai un numero.
const quantity = "12";
console.log(quantity * 1);

Come puoi vedere, quando moltiplichiamo il valore di quantity
per 1, il risultato è il numero 12. Ma come funziona?
In questo esempio, JavaScript ha convertito il nostro valore della stringa in un numero e quindi ha eseguito l'operazione matematica. Tuttavia se il valore contenuto nella stringa non può essere convertito, allora l'operazione matematica non può essere eseguita e il risultato sarà NaN
.
const quantity = "awesome";
console.log(quantity * 1);

Questo metodo funziona anche con i numeri floating point.
const quantity = "10.5";
console.log(quantity * 1);

Come convertire una stringa in un numero in JavaScript dividendo la stringa per il numero 1
Invece di moltiplicare per 1, puoi anche dividere la stringa per 1. JavaScript convertirà il valore della nostra stringa in un numero e quindi eseguirà l'operazione matematica.
const quantity = "10.5";
console.log(quantity / 1);

Come convertire una stringa in un numero in JavaScript sottraendo il numero 0 dalla stringa
Un ulteriore metodo è sottrarre 0 dalla stringa. Come prima, JavaScript convertirà il valore della nostra stringa in un numero ed eseguirà l'operazione matematica.
const quantity = "19";
console.log(quantity - 0);

Come convertire una stringa in un numero in JavaScript utilizzando l'operatore NOT bit a bit (~
)
L'operatore NOT bit a bit (~
) inverte i bit di un operando e converte tale valore in un intero a 32 bit con segno. Un intero a 32 bit con segno è un valore che rappresenta un numero intero con 32 bit (equivalenti a 4 byte).
Se utilizziamo un operatore NOT bit a bit (~
) su un numero, questi eseguirà la seguente operazione: -(x + 1)
console.log(~19);

Ma se utilizziamo due operatori NOT bit a bit (~
), allora convertiremo la nostra stringa in un numero:
const quantity = "19";
console.log(~~quantity);

Questo metodo non funziona con i numeri floating point perchè il risultato sarà sempre un intero.
const quantity = "19.99";
console.log(~~quantity);

Se provi ad usare questo metodo su un carattere non-numerico, il risultato sarà zero.
const quantity = "awesome";
console.log(~~quantity);

Questo metodo ha dei limiti perchè inizierà a dare problemi per valori che sono considerati troppo grandi. È importante assicurarsi che il numero da convertire sia compreso tra i valori degli interi a 32 bit con segno (ovvero compreso tra -2.147.483.648 e +2.147.483.648).
const quantity = "2700000000";
console.log(~~quantity);

Per saperne di più sull'operatore NOT bit a bit (~
) , puoi fare riferimento alla seguente documentazione.
Come convertire una stringa in un numero in JavaScript usando la funzione Math.floor()
Un altro modo di convertire una stringa in un numero è utilizzando la funzione Math.floor()
. Questa funzione arrotonda per difetto un numero all'intero più vicino.
const quantity = "13.4";
console.log(Math.floor(quantity));

Come nei precedenti esempi, se proviamo ad usare un carattere non numerico, il risultato sarà NaN
.
const quantity = "awesome";
console.log(Math.floor(quantity));

Come convertire una stringa in un numero in JavaScript usando la funzione Math.ceil()
La funzione Math.ceil()
arrotonda per eccesso un numero all'interno più vicino.
const quantity = "7.18";
console.log(Math.ceil(quantity));

Come convertire una stringa in un numero in JavaScript usando la funzione Math.round()
La funzione Math.round()
arrotonda un numero all'intero più vicino.
Se abbiamo il valore di 6.3, la funzione Math.round()
restituirà il valore 6.
const quantity = "6.3";
console.log(Math.round(quantity));

Ma se cambio tale valore a 6.5, allora la funzione Math.round()
restituirà il valore 7.
const quantity = "6.5";
console.log(Math.round(quantity));

Conclusioni
In questo articolo, ti ho mostrato 11 modi per convertire una stringa in un numero usando JavaScript.
Qui sono elencati gli 11 differenti metodi discussi nell'articolo:
- usare la funzione
Number()
- usare la funzione
parseInt()
- usare la funzione
parseFloat()
- usare l'operatore unario più (
+
) - moltiplicare la stringa per il numero 1
- dividere la stringa per il numero 1
- sottrarre il numero 0 dalla stringa
- usare l'operatore NOT bit a bit (
~
) - usare la funzione
Math.floor()
- usare la funzione
Math.ceil()
- usare la funzione
Math.round()
Spero che questo articolo ti sia piaciuto. Buona fortuna per il tuo viaggio nel mondo di JavaScript.