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

标签 javascript integer decimal

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

相关文章:

javascript - 单击阅读更多后如何在我的代码上添加阅读更少按钮?

javascript - 如何使用 JavaScript 将数字限制在最小值/最大值之间?

f# - 十进制转换F#脚本与编译后的F#

c - 了解递归十进制到二进制代码?

javascript - 禁用 eslint 解析错误消息

java - 使用 selenium webdriver 完全滚动 ajax 页面

javascript - 如何使用来自 mysql 数据库的数据仅在谷歌饼图图例上显示标签和值

c - 如何检索存储在无符号变量中的有符号值

java - 超越 Java 中的 Integer.MAX_VALUE 约束

javascript - ParseFloat 混淆