-2

可能重复:
JavaScript parseInt 八进制错误的解决方法

好吧,我有这个 http://jsfiddle.net/gMDfk/1/ 警报返回 0 当值等于 8 或 9 时,jsfiddle 中的代码工作得很好。 Wtf 在这里发生吗?

4

4 回答 4

7

, 10向 parseInt添加一个:

parseInt( val, 10 );

告诉 JS 将其视为以 10 为底的数字。默认情况下,以 开头的任何内容都0被视为八进制、以 8 为底的数字。由于09不是一个有效的 base-8 数字,你会得到0

于 2011-12-27T20:39:46.773 回答
2

以 0 为前缀的数字意味着它被 javascript 解释为八进制。试试这个:

alert(parseInt("010")); //shows "8"

您可以通过将10其作为第二个参数传递给 来修复它parseInt,这让它知道您希望它以十进制解析。

alert(parseInt("010", 10)); //shows "10"
于 2011-12-27T20:40:51.503 回答
1

Parseint 应该使用 radix 参数:parseint (value, radix)。在你的情况下,基数是 10。否则,它将把它当作八进制。

于 2011-12-27T20:40:17.057 回答
0

指定基数

parseInt(some_id_value,10);
于 2011-12-27T20:43:07.643 回答