好吧,我有这个 http://jsfiddle.net/gMDfk/1/ 警报返回 0 当值等于 8 或 9 时,jsfiddle 中的代码工作得很好。 Wtf 在这里发生吗?
问问题
289 次
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 回答