javascript中的parseInt方法返回一个垃圾值

时间:2012-07-13 08:58:48

标签: javascript parseint

  

可能重复:
  Why does parseInt(1/0, 19) return 18?

我正在从javascript中的表达式结果中解析一个整数。 表达式是(a/b,24),它在一个方法中,所以我没有检查除零。 我正在将整数解析为parseInt(a/b,24)

但我在其中发现了一件不寻常的事情when a=1, b=0 the result was 151176378.

请说明造成这种差异的原因。

感谢任何建议。

1 个答案:

答案 0 :(得分:3)

当你运行parseInt(a/b, 24)时,你试图解析基数为24的a/b的结果(不知道这个数字系统会是什么样子)。

a/b返回Infinity,将其转换为字符串值"Infinity",然后使用base 24进行解析,以便与parseInt("Infinity", 24)获得相同的结果。如果NaN的任何基数为18或更低(即parseInt(1/0, 18)),您将获得{{1}}的结果。