Converti una stringa in un numero in JavaScript

Nithin Krishnan 12 ottobre 2023
  1. Usa la funzione Number() per convertire una stringa in un numero in JavaScript
  2. Usa la funzione parseInt() per convertire una stringa in numero intero in JavaScript
  3. Usa l’oggetto Math per convertire una stringa in un numero intero in JavaScript
  4. Conclusione
Converti una stringa in un numero in JavaScript

Dobbiamo aver avuto vari scenari per convertire un numero. Ad esempio, i dati recuperati da un’API o una query di database in un formato stringa in un numero. Poiché le stringhe vengono utilizzate in modo diverso, potrebbe essere necessario convertire queste stringhe in un formato numerico per eseguire operazioni aritmetiche su di esse con facilità. Ecco alcuni modi per farlo:

  • Number("123")
  • parseInt("123")
  • Math.floor("123.12")
  • Math.round("123")

Usa la funzione Number() per convertire una stringa in un numero in JavaScript

Il Number() è una funzione del costrutto Number che può essere utilizzato per convertire altri tipi di dati in un formato numerico (come da MDN Docs). Restituisce NaN se il parametro di input è indefinito o non convertibile in un numero. Per esempio:

console.log(Number('246'))
console.log(Number('246.5'))
console.log(Number(undefined))
console.log(Number('Hello'))

Produzione:

246
246.5
NaN
NaN

Usa la funzione parseInt() per convertire una stringa in numero intero in JavaScript

Un altro modo per gestire i numeri di stringa è utilizzare il metodo parseInt() di JavaScript. parseInt() accetta due argomenti, uno è la stringa che deve essere convertita e l’altro è la radix (significa la base). La maggior parte dei numeri con cui abbiamo a che fare nella nostra vita quotidiana sono solitamente in base a 10, che indica un valore decimale. Nella maggior parte dei casi, non è necessario specificare la radice poiché il valore predefinito è 10.

console.log(parseInt('123'));
console.log(parseInt('abc'));
console.log(parseInt('-123'));
console.log(parseInt('100.50'));

Produzione:

123
NaN
-123
100

parseInt("100.50") restituisce 100 invece di 100.50, poiché converte il numero di input in un intero. Quindi, mentre si usa parseInt() sii consapevole del fatto.

parseInt() può anche convertire valori esadecimali e valori con diversi sistemi di numeri di base, come il sistema binario, il sistema ottale, ecc. Per maggiori informazioni, controlla la documentazione. Allo stesso modo, possiamo usare parseFloat() per convertire una stringa in un numero a virgola mobile.

Usa l’oggetto Math per convertire una stringa in un numero intero in JavaScript

Math è un oggetto integrato in JavaScript che ha metodi per operazioni matematiche complesse. Funziona sul numero del tipo di dati. Ma pochi metodi di questo oggetto integrato vengono utilizzati per convertire la stringa in un numero intero. Per esempio,

console.log(Math.ceil('123'));
console.log(Math.floor('300'));
console.log(Math.abs('450'));

Produzione:

123
300
450

Tuttavia, c’è una trappola quando si utilizzano i metodi Math per la conversione. Per i valori in virgola mobile, non possiamo usarli poiché li convertiranno in un numero intero. Quindi, perderemo la parte decimale del valore.

  • Math.ceil("220.5"): restituisce 221. Prende il valore massimo, approssimando il numero decimale al valore intero successivo che è 221. Quindi, non possiamo usarlo per ottenere 220.5. In tali scenari utilizzare parseFloat().
  • Math.floor("220.5"): restituisce 220. Rispetto alla funzione ceil(), floor() restituisce il valore intero precedente. Quindi Math.floor() non funzionerebbe per valori numerici in virgola mobile.
  • Math.abs("450"): può essere utilizzato poiché restituirà 450 ma non funzionerebbe con valori interi negativi. Ad esempio, la seguente differenza non servirà al nostro scopo quando si tratta di valori interi negativi. Secondo i seguenti scenari:
console.log(Maths.abs('240.64'))
console.log(Math.abs('-240.25'))

Produzione:

240.64 // The decimal value of .64 is captured here
240.25 // -240.25 is transformed to 240.25

Conclusione

A seconda del valore che ci aspettiamo dal numero di stringa, l’opzione migliore sarà usare il metodo Number(). Se stai giocando solo con valori interi, ti consigliamo di usare parseInt(). Fai un uso giudizioso dell’oggetto Math integrato in JavaScript per convertire un numero di stringa poiché potrebbe essere complicato in base al metodo che utilizziamo.

Articolo correlato - JavaScript String

Articolo correlato - JavaScript Integer