¿Qué significa radix en realidad? ¿Por qué lo necesitamos?¿Por qué necesitamos usar Radix?
parseInt(10, radixValue);
¿Qué significa radix en realidad? ¿Por qué lo necesitamos?¿Por qué necesitamos usar Radix?
parseInt(10, radixValue);
No siempre puede ser que desee analizar el número entero en un número de base 10, por lo que el suministro de la raíz que permite especificar otros sistemas numéricos.
La raíz es el número de valores para un solo dígito. Hexidecimal sería 16. Octal sería 8, Binary sería 2, y así sucesivamente ...
En la función , hay varias cosas que puede hacer para insinuar la raíz sin suministrarla. Estos también pueden funcionar en su contra si el usuario está ingresando una cadena que coincide con una de las reglas, pero que no significa expresamente. Por ejemplo:
// 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);
Así parseInt ('0101') da 101 o 65? – Vivekh
@Vivekh - Solía respaldarlo 2011 cuando originalmente publiqué la respuesta. Una comprobación rápida en Google Chrome parece indicar que han cambiado un poco. 'parseInt ('0101')' ahora devuelve '101'. Sin embargo, diferentes navegadores pueden tener un comportamiento diferente. Siempre incluya el radix para obtener resultados confiables. –
@Vivekh: puede ver la documentación más reciente en https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt –
Porque si usted tiene un número de cuerda como 0700
y desea que la salida sea número entero 700
debe informar parseInt()
que es un número decimal en lugar 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
Nota yo sólo respondí mitad de su pregunta. Vea a otros para obtener buenas definiciones de lo que realmente es una raíz.
Además, parseInt binario ('10101', 2) – Joe
La raíz es el número base del sistema de numeración: http://en.wikipedia.org/wiki/Radix
Normalmente, sólo necesita especificar la raíz si se quiere que sea diferente a 10. Más específicamente (de http://www.w3schools.com/jsref/jsref_parseInt.asp):
Si se omite el parámetro radix, JavaScript asume lo siguiente:
Si la cadena comienza con "0x", la raíz es 16 (hexadecimal) Si los STRI ng comienza con "0", la raíz es 8 (octal). Esta característica está en desuso Si la cadena empieza con cualquier otro valor , la raíz es 10 (decimal)
El parámetro radix se utiliza para especificar que sistema de numeración que se utiliza, por ejemplo, un radix de 16 (hexadecimal) indica que el número en la cadena debe ser analizada desde un número hexadecimal hasta un número decimal .
Si se omite el parámetro radix, JavaScript supone lo siguiente:
Si la cadena comienza con "0x", el radix es 16 (hexadecimal)
Si la cadena comienza con "0" , la raíz es 8 (octal).Esta función está obsoleta
Si la cadena comienza con cualquier otro valor , la raíz es 10 (decimal)
Fuente W3Schools
Radix es la base de un sistema de numeración. Hay un número infinito de sistemas numéricos, pero aquellos con los que la mayoría de la gente está familiarizada son base 10 (decimal) y base 2 (binaria).
Los valores numéricos se pueden interpretar de manera diferente en diferentes bases. Por ejemplo, el número 10 en binario se puede representar como 2 en decimal.
En el caso de parseInt()
, el radix le permite especificar la base que se utilizará. Por defecto, se usa una raíz de 10.
Sin embargo, la raíz debe especificarse siempre, incluso cuando se utiliza la base 10. Considere el caso de
parseInt("010")
// devuelve 8
A primera vista, se puede esperar la declaración para volver 10. explícita el uso de la base ayudará a evitar la confusión:
parseInt("010", 10)
// Devuelve: 10
sólo añadir alguna información adicional que claramente responde a la pregunta:
Si radix es indefinido o 0 (o ausente), JavaScript asume lo siguiente:
Fuente: MDN parseInt()
https://en.wikipedia.org/wiki/Radix –