Converta uma string em um número em JavaScript

Nithin Krishnan 12 outubro 2023
  1. Use a função Number() para converter uma string em um número em JavaScript
  2. Use a função parseInt() para converter uma string em número inteiro em JavaScript
  3. Use o objeto Math para converter uma string em inteiro em JavaScript
  4. Conclusão
Converta uma string em um número em JavaScript

Devemos ter vários cenários para converter um número. Por exemplo, os dados buscados de uma API ou uma consulta de banco de dados em um formato de string para um número. Como as strings são operadas de maneira diferente, pode ser necessário convertê-las em um formato de número para realizar operações aritméticas com facilidade. Aqui estão algumas maneiras de fazer isso:

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

Use a função Number() para converter uma string em um número em JavaScript

O Number() é uma função da construção Number que pode ser usada para converter outros tipos de dados em um formato de número (de acordo com os Documentos MDN). Ele retorna NaN se o parâmetro de entrada for indefinido ou não conversível em um número. Por exemplo:

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

Resultado:

246
246.5
NaN
NaN

Use a função parseInt() para converter uma string em número inteiro em JavaScript

Outra maneira de lidar com números de string é usar o método parseInt() de JavaScript. parseInt() leva dois argumentos, um é a string que precisa ser convertida e o outro é a raiz (significa a base). A maioria dos números com os quais lidamos em nossa vida cotidiana geralmente está na base de 10, o que significa um valor decimal. Na maioria dos casos, não precisamos especificar a raiz, pois o padrão é 10.

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

Resultado:

123
NaN
-123
100

parseInt("100.50") retorna 100 em vez de 100,50, pois converte o número de entrada em um inteiro. Portanto, ao usar parseInt() esteja ciente do fato.

parseInt() também pode converter valores hexadecimais e valores com os diferentes sistemas de números de base, como o sistema binário, o sistema octal, etc. Para mais informações, verifique os documentos. Da mesma forma, podemos usar parseFloat() para converter uma string em um número de ponto flutuante.

Use o objeto Math para converter uma string em inteiro em JavaScript

Math é um objeto embutido em JavaScript que possui métodos para operações matemáticas complexas. Funciona com o número do tipo de dados. Mas poucos métodos desse objeto embutido são usados ​​para converter a string em um inteiro. Por exemplo,

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

Resultado:

123
300
450

No entanto, existe uma armadilha ao usar os métodos Math para conversão. Para valores de ponto flutuante, não podemos usá-los, pois eles os converterão em um número inteiro. Portanto, perderemos a parte decimal do valor.

  • Math.ceil("220.5"): retorna 221. Ele pega o valor máximo, aproximando o número decimal do próximo valor inteiro que é 221. Portanto, não podemos usá-lo para obter 220.5. Em tais cenários, use parseFloat().
  • Math.floor("220.5"): retorna 220. Em comparação com a função ceil(), floor() retorna o valor inteiro anterior. Portanto, Math.floor() não funcionaria para valores de número de ponto flutuante.
  • Math.abs("450"): Pode ser usado porque retornará 450, mas não funcionaria com valores inteiros negativos. Por exemplo, a seguinte diferença não servirá ao nosso propósito ao lidar com valores inteiros negativos. De acordo com os seguintes cenários:
console.log(Maths.abs('240.64'))
console.log(Math.abs('-240.25'))

Resultado:

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

Conclusão

Dependendo do valor que esperamos do número da string, a melhor opção será usar o método Number(). Se você estiver jogando apenas com valores inteiros, recomendamos o uso de parseInt(). Faça um uso criterioso do objeto Math embutido no JavaScript para converter um número de string, pois pode ser complicado com base no método que usamos.

Artigo relacionado - JavaScript String

Artigo relacionado - JavaScript Integer