javascript parseInt()无法正常工作

时间:2015-03-20 10:10:10

标签: javascript parseint

我是JavaScript编程的初学者,当我检查parseInt(),即将字符串转换为整数时,我得到了一些不同的输出。

 var temp = 030;
 document.writeln(" temp value after parseInt is =" +  parseInt(temp));

 output : temp value after parseInt is =24

我没有找到它显示24的原因。你可以帮助我吗?感谢

4 个答案:

答案 0 :(得分:2)

原因是因为它被视为八进制格式。请注意,如果字符串以“0x”开头,则基数为16(十六进制),如果字符串以“0”开头,则基数为8(八进制)。

要获得正确的输出,请尝试这样:

alert(parseInt('030',10));

DEMO

答案 1 :(得分:1)

因为你的前缀为0所以它将被解释为八进制数

所以030将被转换为十进制,即24

答案 2 :(得分:1)

ParseInt是一种将字符串转换为数字的方法。 您可以在parseInt中添加第二个参数来加速数学基础。

例如:

parseInt('030',10)

如果radix未定义或0(或不存在),则JavaScript假定以下内容:

如果输入字符串以" 0x"开头?或" 0X",基数为16(十六进制),并解析字符串的其余部分。

如果输入字符串以" 0"开头,则基数为八(八进制)或十进制(十进制)。究竟选择哪个基数是依赖于实现的。 ECMAScript 5指定使用10(十进制),但并非所有浏览器都支持此功能。因此,在使用parseInt时始终指定基数。

如果输入字符串以任何其他值开头,则基数为10(十进制)。

答案 3 :(得分:0)

你的意思是?:

 var temp = '030';
 document.writeln(" temp value after parseInt is =" +  parseInt(temp));