Transformar String em Número no JavaScript: Guia Completo

transformar string em numero javascript

Quando se trata de programação, manipular dados é uma tarefa essencial. Em muitos casos, precisamos transformar string em numero javascript para realizar cálculos, validações ou apresentar informações de forma adequada. No JavaScript, uma das linguagens de programação mais populares, existem várias maneiras de realizar essa conversão. Neste guia completo, vamos explorar diferentes métodos para transformar uma string em número, seja ele inteiro, decimal ou até mesmo NaN (Not a Number).

1. parseInt(): Convertendo String em Inteiro

O método parseInt() é amplamente utilizado para converter uma string em um número inteiro. Ele analisa a string de entrada até encontrar um caractere não numérico e retorna o número inteiro correspondente. Caso a string não inicie com um número, o resultado será NaN.

2. parseFloat(): Convertendo String em Número Decimal

Se você estiver lidando com números decimais, o método parseFloat() é a escolha certa. Ele permite que você converta uma string em um número de ponto flutuante (decimal). Da mesma forma que o parseInt(), o parseFloat() também retorna NaN caso a string não possua um valor numérico válido.

3. Operador de Adição (+): Uma Abordagem Simples

O operador de adição (+) não é apenas para somar números, mas também pode ser utilizado para converter strings em números. Se a string contiver apenas caracteres numéricos ou um número válido, ele será convertido em seu equivalente numérico. Entretanto, se houver outros caracteres não numéricos, o resultado será NaN.

4. Number(): Outra Opção para Conversão

O construtor Number() também pode ser usado para converter strings em números. Ao passar uma string como argumento para Number(), ele retornará o número correspondente. Assim como os outros métodos, se a string não representar um número válido, o resultado será NaN.

5. Unary Plus (+): Uma Abordagem Rápida

Uma abordagem curiosa para converter uma string em número é o uso do operador unário de adição (+) antes da string. Isso faz com que o JavaScript tente convertê-la em um número. É uma alternativa ao método tradicional de adição mencionado anteriormente, mas tenha cuidado, pois, se a string for inválida, o resultado será NaN.

6. Utilizando o método Number.parseInt()

A partir do ECMAScript 6 (ES6), o JavaScript introduziu o objeto Number com seus próprios métodos estáticos. Um deles é o parseInt(), que também pode ser usado para converter strings em números inteiros, tornando o código mais legível.

7. Utilizando o método Number.parseFloat()

Similar ao Number.parseInt(), o Number.parseFloat() é uma adição do ES6 que converte strings em números de ponto flutuante (decimais) de forma mais legível e explícita.

8. Utilizando o método ~~ para Truncar Números

O operador ~~ é uma forma não convencional de converter uma string em um número inteiro positivo. Funciona truncando os valores decimais após a conversão, mas tenha em mente que não é uma técnica recomendada, pois pode levar a resultados inesperados ou difíceis de entender.

9. Verificando se é um Número com isNaN()

Antes de realizar a conversão, pode ser útil verificar se a string representa um número válido. Para isso, podemos usar a função global isNaN(). Essa função retorna true se o valor fornecido não for um número ou não puder ser convertido em um, caso contrário, retorna false.

10. Utilizando Expressões Regulares para Filtrar Caracteres

Em algumas situações, quando você possui uma string com formatação específica e deseja converter apenas os números presentes nela, pode ser útil usar expressões regulares para filtrar os caracteres não numéricos antes da conversão.

11. Limpando a String com replace() antes da Conversão

Outra abordagem para garantir uma conversão precisa é usar o método replace() para eliminar quaisquer caracteres não numéricos antes de aplicar os métodos de conversão mencionados anteriormente.

12. Tratando Números com casas decimais usando toFixed()

Se você deseja controlar o número de casas decimais após a conversão, pode usar o método toFixed() após transformar a string em um número. Esse método retornará uma string representando o número com o número de casas decimais desejado.

13. Entendendo o Uso da Base com parseInt()

O método parseInt() possui um segundo parâmetro opcional que representa a base na qual a string está escrita. Isso permite que você lide com conversões de números binários, octais ou hexadecimais, além de decimais.

14. Lidando com Números Grandes com BigInt()

Se você estiver lidando com números extremamente grandes que ultrapassam a capacidade do JavaScript para números padrão, pode usar o objeto BigInt() para realizar conversões e operações com precisão.

15. Conclusão

Neste guia, exploramos diversas maneiras de transformar string em numero javascript. Desde os métodos tradicionais como parseInt() e parseFloat(), até as abordagens mais peculiares como o operador de adição (+) e o uso de expressões regulares. Cada método tem suas vantagens e é importante escolher o mais adequado para o seu cenário específico.

Lembre-se sempre de garantir que a string esteja formatada corretamente antes da conversão, evitando assim resultados inesperados. Além disso, verifique a necessidade de trabalhar com números inteiros, decimais ou números extremamente grandes, e selecione o método apropriado de acordo com a situação.

Perguntas Frequentes

1. Por que o método parseInt() retorna NaN?

O método parseInt() retorna NaN quando a string não começa com um número ou contém caracteres inválidos para a conversão em inteiro. É essencial garantir que a string esteja bem formatada antes da conversão.

2. Posso usar o operador de adição (+) em qualquer string para convertê-la em número?

Não, o operador de adição (+) só funciona para converter strings que representam números válidos. Se a string tiver outros caracteres não numéricos, o resultado será NaN.

3. Qual é a diferença entre parseInt() e parseFloat()?

O método parseInt() converte a string em um número inteiro, enquanto o parseFloat() retorna um número decimal de ponto flutuante. Ambos retornam NaN se a conversão não for possível.

4. Quando devo usar o objeto Number com parseInt() e parseFloat()?

O uso do objeto Number com parseInt() e parseFloat() é opcional e pode tornar o código mais legível. Se você preferir uma abordagem mais explícita, pode optar por utilizar esse padrão do ECMAScript 6.

5. Em que situações devo usar o objeto BigInt()?

O objeto BigInt() deve ser utilizado quando você estiver trabalhando com números extremamente grandes que ultrapassem a capacidade dos números padrão do JavaScript. Ele oferece suporte a cálculos com precisão em valores inteiros muito grandes.

Prof. Eduardo H Gomes
Prof. Eduardo H Gomes

Mestre em Engenharia da Informação, Especialista em Engenharia da Computação, Cientista da Computação, Professor de Inteligência Artificial no IFSP, 18 anos de docência no Ensino Superior. Apaixonado por Surf, Paraglider, Mergulho livre, Tecnologia, SEO, Banco de Dados e Desenvolvimento Web.