radix究竟意味着什么?我们为什么需要它?
parseInt(10, radixValue);
Run Code Online (Sandbox Code Playgroud)
Jus*_*ner 89
您可能并不总是希望将整数解析为基数为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);
Run Code Online (Sandbox Code Playgroud)
Mic*_*ski 28
因为如果你有一个字符串数字,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
Run Code Online (Sandbox Code Playgroud)
注意我只回答了你问题的一半.有关基数实际是什么的良好定义,请参阅其他人.
基数是数字系统的基数: http: //en.wikipedia.org/wiki/Radix
通常,如果您希望它不同于 10,则只需指定基数。更具体地说(来自http://www.w3schools.com/jsref/jsref_parseInt.asp):
如果省略基数参数,JavaScript 将假定以下内容:
如果字符串以“0x”开头,则基数为 16(十六进制) 如果字符串以“0”开头,则基数为 8(八进制)。此功能已弃用如果字符串以任何其他值开头,则基数为 10(十进制)
Radix是计算系统的基础.有无数的数字系统,但大多数人都熟悉的数字系统是基数10(十进制)和基数2(二进制).
数值可以在不同的基础上以不同的方式解释.例如,二进制数字10可以用十进制表示为2.
在这种情况下parseInt(),基数允许您指定要使用的基数.默认情况下,使用10的基数.
但是,即使使用基数10,也应始终指定基数.考虑的情况
parseInt("010") //返回8
乍一看,您可能希望该语句返回10.显式使用基数将有助于避免混淆:
parseInt("010", 10) //返回:10
| 归档时间: |
|
| 查看次数: |
43154 次 |
| 最近记录: |