radix究竟意味着什么?我们为什么需要它?
parseInt(10, radixValue);
答案 0 :(得分:77)
您可能并不总是想要将整数解析为基数为10的数字,因此提供基数可以指定其他数字系统。
基数是单个数字的值的数量。十六进制将是16.八进制将是8,二进制将是2,依此类推......
在parseInt()
函数中,您可以做几件事来提示基数而不提供它。如果用户输入的字符串与其中一个规则匹配但不明确表示,则这些也可能对您不利。例如:
// 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);
答案 1 :(得分:22)
因为如果您有一个像0700
这样的字符串编号并希望输出为整数700
,则需要通知parseInt()
它是十进制数而不是八进制数。
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
注意我只回答了你问题的一半。有关基数的实际定义,请参阅其他内容。
答案 2 :(得分:5)
Radix是计算系统的基础。有无数的数字系统,但大多数人都熟悉的数字系统是基数10(十进制)和基数2(二进制)。
可以在不同的基础上对数值进行不同的解释。例如,二进制数字10可以用十进制表示为2。
在parseInt()
的情况下,基数允许您指定要使用的基数。默认情况下,使用10的基数。
但是,即使使用基数10,也应始终指定基数。考虑
的情况 parseInt("010")
//返回8
乍一看,您可能希望该声明返回10.显式使用基数将有助于避免混淆:
parseInt("010", 10)
//返回:10
答案 3 :(得分:3)
基数是数字系统的基数:http://en.wikipedia.org/wiki/Radix
通常情况下,如果您希望它与10不同,则只需指定基数。更具体地说(来自http://www.w3schools.com/jsref/jsref_parseInt.asp):
如果省略radix参数, JavaScript假设如下:
如果字符串以“0x”开头,则为 基数是16(十六进制)如果是 字符串以“0”开头,基数为8 (八进制)。不推荐使用此功能 字符串以任何其他字符开头 值,基数为10(十进制)
答案 4 :(得分:2)
只需添加一些明确回答问题的其他信息:
如果radix未定义或0(或不存在),则JavaScript假定以下内容:
答案 5 :(得分:2)
这只是我的看法,但是“我们需要使用基数”的想法很快就过时了。这个问题确实是前一段时间才真正存在的,因为IT界以外的人通常不使用除十进制之外的数字符号,并且经常会提供十进制的十进制数字,例如“ 010”。但是由于JS中ECMAScript 6八进制数字的前缀是“ 0o”,而不仅仅是ECMAScript 5和3的前缀是“ 0”。因此,如果您不针对IE系列(现在并不常见),则可以跳过基数安全地
答案 6 :(得分:1)
paseInt()中的基数是什么?
parseInt()
函数解析一个字符串并返回一个整数。它使用 radix 的第二个参数,该指定字符串中数字的基数。 基数可以是2
和36
之间的整数。
函数调用看起来像(语法):
parseInt(string, radix);
一些示例来阐明基数
的概念示例1:
var a = parseInt("11", 2);
radix 变量表示“ 11”在 二进制系统或以2为底的 中。因此,此示例将字符串“ 11”转换为整数3。
示例2:
var a = parseInt("10011", 16);
基数告诉parseInt()
10011
是一个十六进制数,因此,将其转换为整数{{1} }
基本上来说,长话短说,基数参数告诉65553
作为第一个参数传递的字符串是特定系统(二进制,十六进制等)的字符串,需要对其进行转换成一个整数作为最终产品。
答案 7 :(得分:1)
在 2011 年使用 parseInt 时,我学到了总是需要提供基数的艰难方法。但在现代浏览器中,他们似乎“修复”了它。
如果你在一个以 0 开头的字符串上运行一个函数,它会用基数 10 来解析它。但是如果你出于某种原因在一个数字上运行它,那么它仍然会使用基数 8,如{{3}中提到的}.
console.log(parseInt('015'));
// This returns 15
console.log(parseInt(015));
// This returns 13
答案 8 :(得分:0)
radix参数用于指定 要使用哪个数字系统 例如,16的基数(十六进制) 表示中的数字 字符串应该从a解析 十六进制数到小数 号。
如果省略radix参数, JavaScript假设如下:
如果字符串以“0x”开头,则为 基数为16(十六进制)
如果字符串以“0”开头,则为 基数为8(八进制)。这个功能是 弃用
如果字符串以任何其他字符串开头 值,基数为10(十进制)