5

我在正整数之前有一些零。我想删除零,所以只剩下正整数。就像'001'只会是'1'。我认为最简单的方法是使用 parseInt('001')。但我发现它不适用于数字 8 和 9。示例 parseInt('008') 将导致 '0' 而不是 '8'。

这是整个html代码:

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

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

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

4

4 回答 4

15

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

parseInt('01', 10);
于 2010-12-19T04:07:59.080 回答
10

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

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

于 2010-12-19T04:06:02.330 回答
3

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

于 2010-12-19T04:06:11.067 回答
1

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

于 2010-12-19T04:10:44.460 回答