基数实际上是什么意思?为什么我们需要它?
parseInt(10, radixValue);
基数实际上是什么意思?为什么我们需要它?
parseInt(10, radixValue);
您可能并不总是希望将整数解析为基数为 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);
因为如果你有一个类似的字符串数字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
基数是计数系统的基础。有无数的数字系统,但大多数人熟悉的是以 10(十进制)和以 2(二进制)为基数的系统。
数值在不同的基础上可以有不同的解释。例如,二进制数 10 可以表示为十进制数 2。
在 的情况下parseInt()
,基数允许您指定要使用的基数。默认情况下,使用基数 10。
但是,即使使用基数 10,也应始终指定基数。请考虑以下情况
parseInt("010")
// 返回 8
乍一看,您可能期望该语句返回 10。显式使用基数将有助于避免混淆:
parseInt("010", 10)
// 返回:10
基数是数字系统的基数:http : //en.wikipedia.org/wiki/Radix
通常,如果您希望它与 10 不同,则只需要指定基数。更具体地说(来自http://www.w3schools.com/jsref/jsref_parseInt.asp):
如果省略 radix 参数,JavaScript 假定如下:
如果字符串以“0x”开头,则基数为 16(十六进制) 如果字符串以“0”开头,则基数为 8(八进制)。此功能已弃用 如果字符串以任何其他值开头,则基数为 10(十进制)
只需添加一些附加信息即可清楚地回答问题:
如果 radix 未定义或为 0(或不存在),JavaScript 会假设如下: