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:
Number()
: Esta função converte a string em um número. Se a string não contiver um número válido, ela retornaNaN
(Not a Number).Mais Unário (
+
): Colocar um+
antes de uma string é uma forma abreviada de convertê-la em um número, equivalente a chamarNumber()
.parseInt()
eparseFloat()
: 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.Métodos
Math
:Math.floor()
,Math.ceil()
eMath.round()
podem ser usados comparseFloat()
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()
:
let str = "123";
let num = Number(str);
console.log(num); // 123
Usando o Mais Unário (+
):
let str = "123";
let num = +str;
console.log(num); // 123
Usando parseInt()
e parseFloat()
:
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
:
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()
ouparseFloat()
quando a string puder conter caracteres não numéricos e você quiser extrair o número inicial. - Use métodos
Math
comparseFloat()
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.