看起来应该很简单,但我一直在谷歌上搜索我的后端,到目前为止还没有找到解决方案。我认为这篇文章与我见过的许多其他文章的不同之处在于我的输入是一个整数,尽管它可能不是一个正确的 JS 数字。
我正在尝试编写一个函数,它接受一个整数(例如 0100、010、100、0001),然后输出正确的以 10 为基数的整数。
例如,如果函数接收到 0100,我想要输出的是 100。
所以,..如果我知道我将收到一个 4 位伪整数,比如 0100,我可以:
function getRealNumber(someNum){
var realNum = parseInt(someNum, 16);
return realNum;
}
getRealNumber(0100);
或者:
function getRealNumber(someNum){
var realNum = parseInt(someNum.toString(8));
return realNum;
}
getRealNumber(0100);
我会返回 100,但显然如果我收到 100,那是行不通的。
我想我可以先将输入转换为字符串,然后将其解析为指定基数 10 的整数,如下所示:
function getRealNumber(someNum){
var someNumString = someNum.toString();
var realNum = parseInt(someNumString, 10);
return realNum;
}
getRealNumber(0100);
但是结果是 64。
所以我认为我一直在确定接收到的整数的格式(即十六进制、八进制)。
感谢您的帮助,如果我错过了一些明显的内容,请抱歉。
最佳答案
您需要以字符串形式提供伪整数。如果您输入数字文字,Javascript 编译器会在调用 parseInt()
之前将其解析为数字,并且 Javascript 编译器将以 0
开头的数字视为八进制。所以应该是:
function getRealNumber(someNum){
var realNum = parseInt(someNum, 10);
return realNum;
}
console.log(getRealNumber('0100'));
关于JavaScript 接收伪整数(即 0100 或 03)并输出正确整数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43297753/