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