MDBF Logo MDBF

JavaScript: Como Converter String em Número de Forma Simples

Artigos

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.

javascript-convert-string-to-number

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.1415

Vantagens:- 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étodoRetorna NaN em caso de erroIdeal paraNota
Number()SimConvertções geraisConverte toda a string; útil para validações completas
+ (unário)SimCódigo compactoSimilar 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 flutuantePara 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)); // true

Tabela Resumo das Técnicas de Conversão

MétodoRetorna NaN para valores inválidosResumoUso recomendado
Number()SimConverte qualquer valor para númeroConversão geral de字符串 para número
+ (unário)SimRápido e compactoConversão rápida e limpa
parseInt()NãoExtração de inteiro em stringsQuando se precisa de números inteiros
parseFloat()NãoNúmeros decimaisQuando se trabalha com ponto flutuante

Dicas Práticas para Conversão de String em Número

  • Sempre verificar se o valor convertido não é NaN usando isNaN() ou Number.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