JavaScript 函数 parseInt() 无法正确解析以 0 开头的数字

发布于 2024-10-08 06:51:56 字数 368 浏览 5 评论 0原文

我在正整数之前有一些零。我想删除零,这样只保留正整数。就像“001”只会是“1”。我认为最简单的方法是使用 parseInt('001')。但我发现它不适用于数字 8 和 9。示例 parseInt('008') 将产生 '0' 而不是 '8'。

以下是完整的 html 代码:

<html> <body>
<script>
var integer = parseInt('002');
document.write(integer);

</script>
</body> </html>

但是我可以以某种方式报告这个问题吗?有谁知道解决这个问题的另一个简单方法?

I have some zeros prior to a positive integer. I want to remove the zeros so only the positive integer remains. Like '001' will only be '1'. I thought the easiest way was to use parseInt('001'). But what I discovered is that it don't works for the number 8 and 9. Example parseInt('008') will result in '0' instead of '8'.

Here are the whole html code:

<html> <body>
<script>
var integer = parseInt('002');
document.write(integer);

</script>
</body> </html>

But can I somehow report this problem? Do anyone know an another easy workaround this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

沉睡月亮 2024-10-15 06:51:56

您必须指定数字的基数(基数)

parseInt('01', 10);

You have to specify the base of the number (radix)

parseInt('01', 10);
当爱已成负担 2024-10-15 06:51:56

这是记录的行为:http://www.w3schools.com/jsref/jsref_parseInt.asp

以 '0' 开头的字符串被解析为八进制。

This is documented behavior: http://www.w3schools.com/jsref/jsref_parseInt.asp

Strings with a leading '0' are parsed as if they were octal.

计㈡愣 2024-10-15 06:51:56

以零为前缀的数字被解析为八进制。

Number prefixed with zero is parsed as octal.

撩动你心 2024-10-15 06:51:56

这实际上不是一个错误。由于遗留原因,以 0 开头的字符串被解释为八进制,而八进制中没有数字 8。要解决此问题,您应该显式传递基数(即 parseInt("008", 10))。

This is not actually a bug. For legacy reasons strings starting with 0 are interpreted in octal, and in octal there is no digit 8. To work around this you should explicitly pass a radix (i.e. parseInt("008", 10)).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文