JavaScript函数parseInt()不能正确解析前导0的数字

时间:2010-12-19 04:04:11

标签: javascript parseint

我在正整数之前有一些零。我想删除零,所以只剩下正整数。像'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 个答案:

答案 0 :(得分:15)

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

parseInt('01', 10);

答案 1 :(得分:10)

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

前导'0'的字符串被解析为好像是八进制。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

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