Javascript - 将数字转换为将数字转换为某个不同数字的数字.不明白为什么会这样?

Raj*_*era 4 javascript jquery

某个数字的前导零,将数字转换为某种未知数字格式.例如 :

017 正在转变为 15

037 正在转变为 31

还发现在末尾具有8 0r 9的数字保持相同,例如:

01818

03838

o5959

我发现的另一件事是

对于每个下一个10的范围,转换值和实际值之间的差值增加2

例如 :

对于范围 00-09 差异, 0 即07的值将是7,04将是4

对于范围 010-019 差异, 2 值为017将为15,013将为11

对于范围 020-029 差异, 4 值027将为23,021将为17

等等..

这是一个测试的snipet http://jsfiddle.net/rajubera/BxQHF/

我不明白为什么会发生这种情况?

请帮我如何从前导零的数字中得到正确的十进制数?

go-*_*leg 6

如果有一个前导0,它将它转换为八进制(基数为8),只要它是基数为8的有效数字(没有大于7的数字).

例如:

017在基数8中,1*8 + 7 = 15 037,基数8是3*8 + 7 = 31

018转换为18因为018不是基数8中的有效数字

请注意,默认情况下,数字转换为哪个基数的行为可以是特定于浏览器的,因此在使用时始终指定基数/基数非常重要parseInt:

parseInt("017",10) === 17

根据评论更新:

parseInt期望a string作为第一个参数,所以

parseInt("012",10) === 12