当前位置: 首页 > 面试题库 >

如何解决JavaScript的parseInt八进制行为?

黄元章
2023-03-14
问题内容

尝试在JavaScript中执行以下操作:

parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!

我刚刚学习了JavaScript认为前导零表示八进制整数的艰难方法,并且由于在基数8中没有"8""9",所以该函数返回零。

有哪些解决方法?

注意:为了完整起见,我将发布一个解决方案,但这是我讨厌的解决方案,因此请发布其他/更好的答案。

更新:

JavaScript标准的第5版(ECMA-262)引入了一项重大更改,消除了此行为。Mozilla有一个很好的写了。


问题答案:

这是一个简单的解决方案,是常见的Javascript陷阱:

只需指定base或“ radix”,如下所示:

parseInt('08',10); // 8

您也可以使用Number:

Number('08'); // 8


 类似资料:
  • 本文向大家介绍如何将八进制转换为二进制?,包括了如何将八进制转换为二进制?的使用技巧和注意事项,需要的朋友参考一下 八进制数是基数为8的数字系统之一,这意味着只有8个符号−0、1、2、3、4、5、6和7。而二进制数是数字系统、网络和计算机专业人员最熟悉的数字系统。基2只有2个符号−0和1,这些数字可以分别用off和on表示。 从八进制转换为二进制数制 将八进制数转换成二进制数有多种直接或间接的方法

  • 在这个例子中,我找到了三位数的八进制数,我使用了冗长的if条件,谁能减少if语句和赋值。注意不要使用预先定义的过程或内置的包..

  • 本文向大家介绍如何将小数转换为八进制?,包括了如何将小数转换为八进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而八进制是表示数字的数字系统之一。它是基数8,只有8个符号-0、1、2、3、4、5、6和7。 从十进制转换为八进制数字系统 有多种直接或间接的方法可以将十进制数转换为八进制数。在间接方法中

  • 主要内容:二进制,八进制,十六进制我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、二十九、一百等,就需要多个数字组合起来。 例如表示 5+8 的结果,一个数字不够,只能”进位“,用 13 来表示;这时”进一位“相当于十,”进两位“相当于二十。 因为逢十进一(满十进一),也因为只有 0~9 共十个数字,所以叫做 十进制(Decimalism)。十进

  • 问题内容: 我正在尝试编写以下代码。但是它给我错误请帮助我。 为什么我不能给变量018和019.我可以给变量值020和021。为什么会这样?请告诉我背后的原因是什么。 我收到以下错误 问题答案: 八进制是以8为底的数字系统,因此它意味着数字可以从0到7,您不能在八进制系统中使用数字8(也可以是9)。

  • Python3 实例 以下代码用于实现十进制转二进制、八进制、十六进制: # -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com # 获取用户输入十进制数 dec = int(input("输入数字:")) print("十进制数为:", dec) print("转换为二进制为:", bin(dec