Converter strings para números em JavaScript
Em JavaScript, assim como na maioria das linguagens de programação, podemos representar valores numéricos como números mesmo, ou como strings.
Geralmente usamos a representação como string quando é necessário exibir resultados ou informações para o usuário, e não precisamos realizar cálculos com os valores numéricos.
Porém, para ser capaz de realizar cálculos numéricos com os valores (por exemplo, advindos de um formulário), é necessário que esses valores estejam representados no formato adequado, ou seja, que sejam do tipo numérico. Caso contrário, as operações aritméticas podem falhar: uma soma pode ser interpretada como uma concatenação de strings, por exemplo.
Neste artigo vou mostrar três funções simples que podem ser utilizadas para realizar a conversão de strings para valores numéricos explicitamente.
Converter string para inteiro: Método parseInt()
Podemos converter uma string em um valor numérico inteiro empregando o método parseInt().
Sintaxe:
parseInt(numero, base)
- numero é o valor de string que deve ser convertido em tipo numérico (deve ser um número que está sendo representado como string; caracteres de texto não podem ser convertidos).
- base é a base numérica a utilizar. O padrão é 10, caso nenhuma base seja informada.
O método retorna NaN (Not a Number) se o valor não puder ser convertido em inteiro.
Exemplo:
var entrada = '30';
var numInteiro = parseInt(entrada, 10);
//ou simplesmente
var numInteiro = parseInt(entrada, 10);
Converter string para decimal: Método parseFloat()
Podemos também converter uma string em um valor numérico de ponto flutuante empregando o método parseFloat().
Sintaxe:
parseFloat(numero)
- numero é o valor de string que deve ser convertido em tipo numérico (caracteres de texto não podem ser convertidos).
Exemplo:
var entrada = '3.1415'; var pi = parseFlot(entrada);
Converter strings para números: o objeto Number()
O objeto Number() também pode ser empregado para realizar a conversão de uma string em valor numérico. O número retornado pode ser um inteiro ou um número de ponto flutuante.
Se uma string de texto for passada para este método, será retornado o valor “NaN”, que significa “Not a Number” (Não é um Número).
Sintaxe:
Number(valor)
- valor é a string que deve ser convertida em tipo numérico (caracteres de texto não podem ser convertidos).
O método Number também pode converter valores de data em números, retornando o número de milissegundos decorridos desde 01/01/1970 00:00:00 UTC.
Exemplo:
var entrada = '600'; var result = Number(entrada);
No geral, se você souber qual o tipo de número esperado, recomenda-se usar o método apropriado (parseInt ou parseFloat), em vez do objeto Number.