JavaScript: Como Converter String em Número de Forma Simples
No desenvolvimento web, especialmente ao trabalhar com JavaScript, muitas vezes nos deparamos com a necessidade de transformar valores do tipo string em números. Essa conversão é fundamental para realizar operações matemáticas, validações e cálculos corretos, garantindo que nossos scripts funcionem conforme o esperado.
Por exemplo, ao obter dados de um formulário, o valor enviado é sempre uma string, mesmo que represente um número. Assim, entender os métodos disponíveis para converter uma string em número é essencial para o sucesso de suas aplicações.

Neste artigo, abordaremos de forma detalhada e prática como fazer essa conversão utilizando diferentes técnicas, além de apresentar dicas, boas práticas, dúvidas frequentes e referências para aprofundamento.
Por que Converter String para Número?
Antes de explorar as técnicas de conversão, é importante entender por que essa operação é necessária.
Operações matemáticas: Somar, multiplicar ou dividir strings não funciona corretamente, pois o JavaScript interpreta esses valores como textos.
Validação de dados: Garantir que uma entrada do usuário é um número válido para evitar erros em cálculos posteriores.
Melhor performance: Trabalhar com valores numéricos é mais eficiente do que manipular strings para operações matemáticas.
Como Converter String em Número em JavaScript?
Existem diversas formas de realizar essa conversão, cada uma com suas particularidades. A seguir, apresentamos as principais técnicas.
1. Utilizando a Função Number()
A função Number() é uma das formas mais diretas de converter uma string em um número.
const valorString = "123";const valorNumero = Number(valorString);console.log(valorNumero); // 123console.log(typeof valorNumero); // "number"Vantagens:- Converte valores numéricos representados por strings.- Funciona bem com números inteiros e de ponto flutuante.
Desvantagens:- Se a string não for um número válido, retorna NaN.
2. Utilizando o Operador Unary Plus (+)
O operador unário + é uma maneira rápida e idiomática de fazer a conversão.
const valorString = "45.67";const valorNumero = +valorString;console.log(valorNumero); // 45.67console.log(typeof valorNumero); // "number"Vantagens:- Código compacto.- Geralmente mais rápido que a função Number().
Desvantagens:- Pode ser menos claro para iniciantes.
3. Utilizando parseInt() e parseFloat()
Os métodos parseInt() e parseFloat() são utilizados para converter strings em números inteiros ou de ponto flutuante, respectivamente.
const valorStringInt = "100";const valorStringFloat = "3.1415";const valorInteiro = parseInt(valorStringInt, 10);const valorFloat = parseFloat(valorStringFloat);console.log(valorInteiro); // 100console.log(valorFloat); // 3.1415Vantagens:- Controla a base numérica (no caso do parseInt()).- Útil para extrair números de uma string com caracteres não numéricos.
Desvantagens:- Pode retornar NaN se a string não começar com um dígito numérico válido.- parseInt() só analisa até o primeiro caractere inválido.
4. Comparação entre os Métodos
| Método | Retorna NaN em caso de erro | Ideal para | Nota |
|---|---|---|---|
Number() | Sim | Convertções gerais | Converte toda a string; útil para validações completas |
+ (unário) | Sim | Código compacto | Similar ao Number(), mais rápido, menos explícito |
parseInt() | Não (retorna NaN) | Números inteiros dentro de string | Útil para extrair inteiros de strings misturadas |
parseFloat() | Não (retorna NaN) | Números de ponto flutuante | Para valores decimais, quando necessário |
Como Lidar com Valores Não Numéricos?
Ao tentar converter uma string que não representa um número válido, as funções retornam NaN. Para evitar problemas, recomenda-se verificar o valor antes de utilizá-lo:
const valor = "abc123";const numero = Number(valor);if (isNaN(numero)) { console.log("Valor inválido para conversão");} else { console.log(`Número convertido: ${numero}`);}Para facilitar, há também funções de validação como isNaN() ou Number.isNaN():
console.log(isNaN("abc")); // trueconsole.log(Number.isNaN(NaN)); // trueTabela Resumo das Técnicas de Conversão
| Método | Retorna NaN para valores inválidos | Resumo | Uso recomendado |
|---|---|---|---|
Number() | Sim | Converte qualquer valor para número | Conversão geral de字符串 para número |
+ (unário) | Sim | Rápido e compacto | Conversão rápida e limpa |
parseInt() | Não | Extração de inteiro em strings | Quando se precisa de números inteiros |
parseFloat() | Não | Números decimais | Quando se trabalha com ponto flutuante |
Dicas Práticas para Conversão de String em Número
- Sempre verificar se o valor convertido não é
NaNusandoisNaN()ouNumber.isNaN(). - Para valores representados com vírgula, fazer a substituição antes da conversão:
const valorComVirgula = "1,234.56";const valorSemVirgula = valorComVirgula.replace(',', '');const valorNumero = Number(valorSemVirgula);- Quando necessário extrair números de strings complexas, use expressões regulares.
Perguntas Frequentes (FAQs)
1. Qual método é o melhor para converter uma string em número?
Depende do contexto. Para uma conversão simples e direta, usar o operador + ou a função Number() é suficiente. Para extrair números de strings mais complexas, parseInt() ou parseFloat() podem ser mais adequados.
2. Como garantir que a string seja um número válido antes da conversão?
Utilize isNaN() ou Number.isNaN() após a conversão. Além disso, valide o formato da string usando expressões regulares para evitar surpresas.
3. Como converter uma string contendo vírgulas ou pontos decimais?
Antes da conversão, substitua vírgulas por pontos ou remova caracteres extra:
const valor = "1.234,56".replace('.', '').replace(',', '.');const numero = Number(valor);4. O operador + funciona com todas as strings?
Em geral, sim, mas se a string estiver vazia ou não representar um número válido, retornará 0 ou NaN, respectivamente.
5. Como converter uma string numérica em inteiro?
Use parseInt() com a base decimal:
const valor = "123";const inteiro = parseInt(valor, 10);Conclusão
Converter uma string em número é uma operação essencial no desenvolvimento com JavaScript, e há várias formas de realizar essa tarefa de maneira eficiente e segura. Optar pelo método adequado depende do cenário, da complexidade da string e do tipo de número que você deseja obter.
Sempre lembre-se de validar o resultado da conversão para evitar erros inesperados e garantir a robustez do seu código. Com as técnicas e dicas apresentadas neste artigo, você estará preparado para manipular valores numéricos de forma confiável nas suas aplicações.
Referências
“A chave para uma programação eficaz é entender profundamente as operações essenciais, como a conversão de tipos, para evitar erros e criar aplicações robustas.” — Desenvolvedor Experiente
MDBF