DEV Community

Ruan Aragão
Ruan Aragão

Posted on

1

Converter texto (string) para número em JavaScript e suas diferenças

Pode parecer até trivial esse tipo de procedimento, mas para quem estar iniciando é bom saber as formas e suas particularidades de realizar uma conversão, evitando assim problemas futuros nos resultados esperados.

Number()

Essa é uma função global de conversão para números.

// Using the Number() function to convert a string to a number
var str1 = "42";
var num1 = Number(str1);  // num1 será 42
Enter fullscreen mode Exit fullscreen mode

Importante ressaltar que ela converte apenas strings que contenham valores numéricos, caso a string contenha valores não numéricos, a função retornará NaN (not a number).

Por exemplo:

var str2 = "hello";
var num2 = Number(str2);  // num2 será NaN
Enter fullscreen mode Exit fullscreen mode

Outro detalhe importante é que valores booleanos e vazios serão convertidos também.

var str3 = "";
var num3 = Number(str3);
// Valor retornado: 0
Enter fullscreen mode Exit fullscreen mode

Operador unário de adição (+)

A forma mais simples, que conheço, para converter uma string em um inteiro é adicionando o operador unário de adição (+) antes da string (ou variável contendo a string).

console.log(+'2');
// Valor retornado: 2

const myNumber = '2';
console.log(+myNumber);
// Valor retornado: 2
Enter fullscreen mode Exit fullscreen mode

O operador de subtração também consegue realizar casting
Mas atenção!
O operador unário

parseInt() e parseFloat()

O parserInt() é a forma mais comumente usada, recebendo uma string e retornando um inteiro, e o parserFloat() recendo uma string e retornando um número de ponto flutuante.

// Usando parseInt(string, base) para converter uma string para um integer
var str5 = "42";
var num5 = parseInt(str5, 10);  // num5 será 42

// Usando parseFloat(string) para converter uma string para um número de ponto flutuante
var str6 = "3.14159";
var num6 = parseFloat(str6);  // num6 será 3.14159
Enter fullscreen mode Exit fullscreen mode

Como viram, no parseInt(string, base) pode ser fornecido a base de conversão, um inteiro entre 2 e 36. Passei 10, pois queria a base decimal, o que não é obrigatório uma vez que a base 10 é assumida quando não se especifica, mas é sempre recomendado passar a base para ser o mais explícito possível sobre o que está ocorrendo.

Dependendo da sua necessidade, essa forma de conversão tem uma certa diferença: ao passar uma string vazia e valores booleanos o retorno será NaN. Se tiver dúvidas em qual usar, essa é a melhor escolha para você.

Também é possível converter strings que comecem com números e tenham caracteres na sequência, por exemplo:

parseInt('1984book');  // o retorno será 1984
Enter fullscreen mode Exit fullscreen mode

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post