JavaScript接收伪整数(即0100或03)并输出正确整数的函数

JavaScript接收伪整数(即0100或03)并输出正确整数的函数,javascript,integer,decimal,Javascript,Integer,Decimal,看起来应该很简单,但我一直在用谷歌搜索我的后端,到目前为止还没有找到解决方案。我认为这篇文章与我见过的许多其他文章不同的是,我的输入是一个整数,尽管它可能不是一个正确的JS数 我正在尝试编写一个函数,它接受一个整数(例如0100010101000001),然后输出正确的以10为基数的整数 例如,如果函数接收到0100,我想输出的是100 所以,。。如果我知道我将收到一个4位伪整数,比如0100,我可以: function getRealNumber(someNum){ var realN

看起来应该很简单,但我一直在用谷歌搜索我的后端,到目前为止还没有找到解决方案。我认为这篇文章与我见过的许多其他文章不同的是,我的输入是一个整数,尽管它可能不是一个正确的JS数

我正在尝试编写一个函数,它接受一个整数(例如0100010101000001),然后输出正确的以10为基数的整数

例如,如果函数接收到0100,我想输出的是100

所以,。。如果我知道我将收到一个4位伪整数,比如0100,我可以:

function getRealNumber(someNum){
    var realNum = parseInt(someNum, 16);
    return realNum;
}

getRealNumber(0100);
或:

我会退回100英镑,但很明显,如果我收到100英镑,那就行不通了

我想我可以先将输入转换为字符串,然后将其解析为一个指定基数10的整数,如下所示:

function getRealNumber(someNum){
   var someNumString = someNum.toString();
   var realNum = parseInt(someNumString, 10);
   return realNum;
}

getRealNumber(0100);
但结果是64

因此,我认为我一直在确定接收到的整数的格式(即十六进制,oct)


感谢您的帮助,如果我遗漏了一些明显的内容,请原谅。

0
开头的整数文字被视为基数8或八进制数,就像以
0x
开头的整数被视为基数16或十六进制一样。我不知道字符串中的整数是否也会发生同样的情况

01 === 1
010 === 8
0100 === 64
...

尝试输入
0109
。您应该得到一个错误-9不是有效的八进制数字-。但老实说,我从未使用过八进制数。

0
开头的整数文字被视为基数8或八进制数,就像以
0x
开头的整数被视为基数16或十六进制一样。我不知道字符串中的整数是否也会发生同样的情况

01 === 1
010 === 8
0100 === 64
...

尝试输入
0109
。您应该得到一个错误-9不是有效的八进制数字-。但老实说,我从未使用过八进制数。

您需要将伪整数作为字符串提供。如果输入一个数字文字,Javascript编译器会在调用
parseInt()
之前将其解析为一个数字,Javascript编译器会将以
0
开头的数字视为八进制。因此,它应该是:

函数getrealnume(someNum){ var realNum=parseInt(someNum,10); 返回reanum; }
console.log(getRealNumber('0100')您需要以字符串形式提供伪整数。如果输入一个数字文字,Javascript编译器会在调用
parseInt()
之前将其解析为一个数字,Javascript编译器会将以
0
开头的数字视为八进制。因此,它应该是:

函数getrealnume(someNum){ var realNum=parseInt(someNum,10); 返回reanum; }
console.log(getRealNumber('0100')someNum是否总是在1前面加上前缀,并可能后跟0?否,。。someNum可以是02500371、04040500623等,someNum是否总是以1开头,后面可能是0?否,。。someNum可能是025003710404050500623等等,