freeCodeCamp/guide/portuguese/javascript/converting-strings-to-numbers/index.md

5.4 KiB

title localeTitle
Converting Strings to Numbers Convertendo Strings em Números

Convertendo Strings em Números

A função parseInt() analisa um argumento de string e retorna um inteiro da base especificada (a base em sistemas numéricos matemáticos).

    parseInt(string, radix); 

Parâmetros

string 

O valor a analisar. Se o argumento string não for uma string, ele será convertido em uma string (usando a operação abstrata ToString ). O espaço em branco inicial no argumento da cadeia é ignorado. radix Um inteiro entre 2 e 36 que representa a raiz (a base em sistemas numéricos matemáticos) da cadeia acima mencionada. Especifique 10 para o sistema de numeração decimal comumente usado por humanos. Sempre especifique esse parâmetro para eliminar a confusão do leitor e garantir um comportamento previsível. Diferentes implementações produzem resultados diferentes quando uma base não é especificada, geralmente padronizando o valor para 10. Valor de retorno Um número inteiro analisado a partir da string dada. Se o primeiro caractere não puder ser convertido em um número, NaN será retornado.

Descrição

A função parseInt converte seu primeiro argumento em uma string, analisa e retorna um inteiro ou NaN . Se não for NaN , o valor retornado será o inteiro que é o primeiro argumento tomado como um número na base especificada (base). Por exemplo, uma raiz de 10 indica a conversão de um número decimal, 8 octal, 16 hexadecimal e assim por diante. Para radices acima de 10 , as letras do alfabeto indicam numerais maiores que 9. Por exemplo, para números hexadecimais (base 16), A a F é usado.

Se parseInt encontrar um caractere que não seja um numeral na base especificada, ele o ignorará e todos os caracteres subsequentes e retornará o valor inteiro analisado até esse ponto. parseInt trunca números para valores inteiros. Espaços à esquerda e à esquerda são permitidos.

Como alguns números incluem o caractere e em sua representação de string (por exemplo, 6.022e23 ), usar parseInt para truncar valores numéricos produzirá resultados inesperados quando usado em números muito grandes ou muito pequenos. parseInt não deve ser usado como um substituto para Math.floor() .

Se radix é undefined ou 0 (ou ausente), o JavaScript assume o seguinte:

  • Se a string entrada começar com "0x" ou "0X", o radical é 16 (hexadecimal) e o restante da cadeia é analisado.
  • Se a string entrada começar com "0", a base é oito (octal) ou 10 (decimal). Exatamente qual radix é escolhido depende da implementação. O ECMAScript 5 especifica que 10 (decimal) é usado, mas nem todos os navegadores suportam isso ainda. Por esse motivo, sempre especifique um radical ao usar parseInt.
  • Se a string entrada começar com qualquer outro valor, a raiz é 10 (decimal).
  • Se o primeiro caractere não puder ser convertido em um número, parseInt retornará NaN.

Para fins aritméticos, o valor NaN não é um número em nenhuma raiz. Você pode chamar a função isNaN para determinar se o resultado de parseInt é NaN. Se NaN é passado para operações aritméticas, os resultados da operação também serão NaN.

Para converter o número em seu literal de string em uma determinada raiz, use intValue.toString (radix).

Exemplos

Usando parseInt Todos os exemplos a seguir retornam 15 :

    parseInt(' 0xF', 16); 
    parseInt(' F', 16); 
    parseInt('17', 8); 
    parseInt(021, 8); 
    parseInt('015', 10);   // parseInt(015, 10); will return 15 
    parseInt(15.99, 10); 
    parseInt('15,123', 10); 
    parseInt('FXX123', 16); 
    parseInt('1111', 2); 
    parseInt('15 * 3', 10); 
    parseInt('15e2', 10); 
    parseInt('15px', 10); 
    parseInt('12', 13); 

Todos os exemplos a seguir retornam NaN :

    parseInt('Hello', 8); // Not a number at all 
    parseInt('546', 2);   // Digits are not valid for binary representations 

Todos os exemplos a seguir retornam -15 :

    parseInt('-F', 16); 
    parseInt('-0F', 16); 
    parseInt('-0XF', 16); 
    parseInt(-15.1, 10) 
    parseInt(' -17', 8); 
    parseInt(' -15', 10); 
    parseInt('-1111', 2); 
    parseInt('-15e1', 10); 
    parseInt('-12', 13); 

Todos os exemplos a seguir retornam 4 :

    parseInt(4.7, 10); 
    parseInt(4.7 * 1e22, 10); // Very large number becomes 4 
    parseInt(0.00000000000434, 10); // Very small number becomes 4 

O exemplo a seguir retorna 224 :

    parseInt('0e0', 16); 

Mais Informações:

parseInt on MDN

  • parseInt () e parseFloat () tentam converter a string em um número, se possível. Por exemplo, var x = parseInt("100"); // x = 100
  • Number () irá converter para um número pelo qual o valor pode ser representado. Isso inclui datas no número de milissegundos desde meia-noite de 1 de janeiro de 1970, UTC, valores booleanos para 1 ou 0 e valores que não podem ser convertidos em um número reconhecível se tornarão NaN. Isso significa não um número e também é tecnicamente um número!