Skip to content

Como converter uma string em um número em JavaScript: métodos e exemplos

Introdução

Ao trabalhar com JavaScript, é comum encontrar situações em que você precisa converter uma string em um número. Seja lidando com entrada do usuário, dados de uma API ou manipulando valores em seu código, saber como converter corretamente uma string em um número é uma habilidade essencial para qualquer desenvolvedor JavaScript.

Problema

Strings e números são tipos de dados fundamentalmente diferentes em JavaScript. Embora você possa realizar operações matemáticas em números, as mesmas operações em strings produzirão resultados diferentes e muitas vezes inesperados. Para evitar bugs e garantir que seu código funcione conforme o esperado, você precisa converter strings em números quando necessário.

Contexto

JavaScript fornece vários métodos nativos para converter uma string em um número, cada um com um comportamento ligeiramente diferente:

  1. Number(): Esta função converte a string em um número. Se a string não contiver um número válido, ela retorna NaN (Not a Number).

  2. Mais Unário (+): Colocar um + antes de uma string é uma forma abreviada de convertê-la em um número, equivalente a chamar Number().

  3. parseInt() e parseFloat(): Estas funções analisam uma string e retornam um número inteiro ou número de ponto flutuante, respectivamente. Elas param de analisar no primeiro caractere não numérico.

  4. Métodos Math: Math.floor(), Math.ceil() e Math.round() podem ser usados com parseFloat() para converter uma string em um número inteiro com comportamento de arredondamento diferente.

Solução

Aqui está como você pode converter uma string em um número em JavaScript usando os diferentes métodos:

Usando Number():

js
let str = "123";
let num = Number(str);
console.log(num); // 123

Usando o Mais Unário (+):

js
let str = "123";  
let num = +str;
console.log(num); // 123

Usando parseInt() e parseFloat():

js
let intString = "123px";
let floatString = "123.45px"; 
let intNum = parseInt(intString);
let floatNum = parseFloat(floatString);
console.log(intNum); // 123
console.log(floatNum); // 123.45

Usando métodos Math:

js
let str = "123.45";
let num = Math.floor(parseFloat(str)); 
console.log(num); // 123

Ao decidir qual método usar, considere o seguinte:

  • Use Number() ou + quando esperar que a string seja um número válido.
  • Use parseInt() ou parseFloat() quando a string puder conter caracteres não numéricos e você quiser extrair o número inicial.
  • Use métodos Math com parseFloat() quando precisar converter para um número inteiro com arredondamento específico.

Lembre-se de lidar com casos em que a conversão pode falhar, como verificar resultados NaN.

Conclusão

Converter strings em números é uma tarefa fundamental na programação JavaScript. Ao entender os diferentes métodos disponíveis e suas nuances, você pode escrever código que lida corretamente com conversões de string para número. Seja usando Number(), mais unário, parseInt()/parseFloat() ou métodos Math, escolha a abordagem que melhor se adapta às suas necessidades específicas. Com esse conhecimento, você será capaz de lidar com conversões de string para número com confiança e construir aplicações JavaScript mais robustas.