【问题标题】:parseInt method in javascript is returning a junk value [duplicate]javascript中的parseInt方法返回垃圾值[重复]
【发布时间】:2012-07-13 02:43:49
【问题描述】:

可能重复:
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.

请解释造成这种差异的原因。

感谢任何建议。

【问题讨论】:

  • a=1, b=0 - a/b不会造成“除以0”的问题吗?
  • 它应该给出一个错误,但它正在返回那个值,有什么想法吗?
  • @freefaller:非常感谢......
  • 为什么人们允许 div 零错误然后解析到一个奇怪的基础并想知道奇怪的结果???

标签: javascript parseint


【解决方案1】:

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

a/b 返回Infinity,它被转换为字符串值"Infinity",然后使用基数24 进行解析,因此您将得到与parseInt("Infinity", 24) 相同的结果。您将得到 NaN 的结果,其基数为 18 或更少(即 parseInt(1/0, 18))。

【讨论】:

  • 您不能使用反斜杠 `\` 作为除法运算符。这会导致语法错误!
  • @core1024,一定要记得校对。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
  • 1970-01-01
相关资源
最近更新 更多