O que radix realmente significa? Por que precisamos disso?
parseInt(10, radixValue);
javascript
John Cooper
fonte
fonte
Respostas:
Você nem sempre deseja analisar o inteiro em um número de base 10, portanto, fornecer a raiz permite que você especifique outros sistemas numéricos.
A raiz é o número de valores para um único dígito. Hexidecimal seria 16. Octal seria 8, Binário seria 2 e assim por diante ...
Na
parseInt()
função, há várias coisas que você pode fazer para indicar o radical sem fornecê-lo. Isso também pode funcionar contra você se o usuário estiver inserindo uma string que corresponda a uma das regras, mas não tenha a intenção expressa de fazê-lo. Por exemplo:// Numbers with a leading 0 used a radix of 8 (octal) before ECMAScript 5. // These days, browsers will treat '0101' as decimal. var result = parseInt('0101'); // Numbers that start with 0x use a radix of 16 (hexidecimal) var result = parseInt('0x0101'); // Numbers starting with anything else assumes a radix of 10 var result = parseInt('101'); // Or you can specify the radix, in this case 2 (binary) var result = parseInt('0101', 2);
fonte
parseInt('0101')
agora retorna101
. No entanto, navegadores diferentes podem ter comportamentos diferentes. Sempre inclua o radical para resultados confiáveis.parseInt(x, 0)
por algum motivo que não consigo lembrar agora .. isso é igual aparseInt(x, 10)
estou me perguntando agora ...Porque se você tem um número de string como
0700
e quer que a saída seja inteira,700
você precisa informarparseInt()
que é um número decimal ao invés de octal.console.log(parseInt("0700")); // 448 // I really wanted decimal (base 10) console.log(parseInt("0700", 10)); // 700 // What is this? Binary, Decimal, Octal? console.log(parseInt("0110")); // 72 // as binary console.log(parseInt("0110", 2)); // 6
fonte
0o
vez de0
Radix é a base de um sistema de numeração. Há um número infinito de sistemas numéricos, mas aqueles com os quais a maioria das pessoas está familiarizada são a base 10 (decimal) e a base 2 (binário).
Os valores numéricos podem ser interpretados de maneira diferente em diferentes bases. Por exemplo, o número 10 em binário pode ser representado como 2 em decimal.
No caso de
parseInt()
, o radical permite que você especifique a base a ser usada. Por padrão, um radical de 10 é usado.No entanto, a raiz deve sempre ser especificada, mesmo quando usando a base 10. Considere o caso de
parseInt("010")
// Retorna 8À primeira vista, você pode esperar que a instrução retorne 10. O uso explícito do radix ajudará a evitar confusão:
parseInt("010", 10)
// Retorna: 10fonte
O radix é o número base do sistema numérico: http://en.wikipedia.org/wiki/Radix
Normalmente, você só precisa especificar o radical se quiser que seja diferente de 10. Mais especificamente (de http://www.w3schools.com/jsref/jsref_parseInt.asp ):
fonte
Basta adicionar algumas informações adicionais que respondem claramente à pergunta:
Se radix for indefinido ou 0 (ou ausente), JavaScript assume o seguinte:
Fonte: MDN parseInt ()
fonte
É apenas minha opinião, mas a ideia de que "precisamos usar radix" rapidamente se torna desatualizada. O problema realmente era real há algum tempo, porque as pessoas fora do mundo de TI geralmente não usam notações numéricas além de decimais e muitas vezes fornecem números decimais com zeros como "010". Mas como os números octais ECMAScript 6 em JS são prefixados por "0o" e não apenas "0" como era em ECMAScript 5 e 3. Portanto, se você não visar a família do IE (essa não é uma situação rara agora), você pode pular o radical com segurança.
fonte
Fonte W3Schools
fonte
O que é radix em paseInt ()?
A
parseInt()
função analisa uma string e retorna um inteiro. Leva um segundo argumento para a raiz , que especifica a base do número na string . A raiz pode ser um número inteiro entre2
e36
.A chamada de função se parece com (sintaxe):
parseInt(string, radix);
Alguns exemplos para esclarecer o conceito de raiz
Exemplo 1:
var a = parseInt("11", 2);
A variável raiz diz que "11" está no sistema binário, ou base 2 . Portanto, este exemplo converte a string "11" em um número inteiro 3.
Exemplo 2:
var a = parseInt("10011", 16);
Aqui, a raiz diz ao
parseInt()
que10011
é um número hexadecimal e, portanto, um inteiro, ele é convertido para65553
Basicamente, encurtando a história, o argumento raiz diz
parseInt()
que a string passada como primeiro parâmetro é de um sistema particular (binário, hexadecimal etc.) e precisa ser convertida em um inteiro como um produto final.fonte