Come convertire da string a integer in JavaScript? Non è purtroppo un processo lineare e lo scopriamo in questo articolo.
Javascript a volte può risultare assurdo: ci sono casi più assurdi di questo che ho voluto riportare in questo articolo, ma il processo da eseguire per convertire un valore string a uno integer non è affatto lineare così come potrebbe esserlo in altri linguaggi di programmazione.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
A dire il vero in JavaScript esiste più di un modo per effettuare la conversione “string to integer”: per questo ho scritto che “non è un processo lineare”.
Ciò detto, scopriamoli.
Number per convertire da string a integer
All’interno di JavaScript esiste una funzione nativa: il suo nome è “Number”.
Il funzionamento della funzione “Number” in JavaScript, è semplicissimo:
var variabileIntera = Number("12345");
Tuttavia, non è troppo completa mi spiego meglio: non lancia alcuna eccezione, non riporta errori se la stringa passata come argomento NON è un numero.
I metodi parseInt e parseFloat
Il loro funzionamento è analogo a quanto visto prima, con la differenza che il metodo “parseInt” permette anche di specificare la base del numero.
Questo significa che possiamo estrapolare numeri esadecimali, in base ottale e binari.
Ovviamente anche numeri decimali.
Per convertire un valore string a integer tramite “parseInt” è il seguente:
var variabileIntera = parseInt("12345", 10);
Nel caso non si fosse capito, il secondo argomento della funzione è la base del numero che si vuole convertire 😉
Succede però una cosa curiosa, anzi assurda se provi a sommare una stringa al valore appena convertito:
var numeroDaConvertire=parseInt("123", 8);
numeroDaConvertire+="55";
Se stampiamo a video tramite “console.log” otterremmo questo risultato: (preciso che “88” è “123” in base 8):
83
8355
Conversione string to int grazie a Math.floor
Math.floor è un’altra funzione del modulo “Math” che JavaScript mette a disposizione.
A che cosa serve di base “Math.floor”? Lo scopro principale di questa funzione è arrotondare il numero passato come argomento a un valore NUMERICO intero.
Il caps lock su “numerico” non è a caso: anche se viene passata una stringa come argomento, la funzione restituisce un valore integer.
Facciamo un esempio immediato:
// La stringa contiene un numero decimale
var numeroStringa = "1000.01";
// La converto a intero tramite la funzione
var numeroIntero = Math.floor(numeroStringa);
// Otterrò come risultato un bel 1000 integer
Dopo aver capito le varie strade a nostra disposizione per convertire da string a integer, ti lascio con un bonus.
Se è tua intenzione usare più volte la funzione “Math.floor”, puoi fare così:
var floor = Math.floor;
// La uso una volta
var numeroIntero = floor("181818");
// La uso una seconda volta
var numeroIntero2 = floor("44.77");
// La uso una terza volta
var numeroIntero3 = floor("9283928392");