【问题标题】:parseInt in Javascript doesn't give back expected value [duplicate]Javascript中的parseInt不返回预期值[重复]
【发布时间】:2011-05-09 09:38:09
【问题描述】:

可能重复:
Javascript parseInt gives very unexpected results

有人可以解释为什么 javascript 将 parseInt(08)parseInt(09) 解释为零,但在 01 到 07 时一切正常吗?

parseFloat 会给我这些值的正确值,我只是找不到答案,为什么 javascript 只会对 8s 和 9s 这样做。

供您参考:前导零来自时间(小时:分钟)。

请查看以下链接以获得更好的示例:http://jsfiddle.net/NPtzA/3/ 在那里您可以看到这种意外行为。

【问题讨论】:

  • 附带说明:如果您的整个字符串是一个数字(即没有后缀),您可以使用一元 + 将其转换为(十进制)整数或浮点值:@987654328 @(也更快)。
  • 试试parseInt(08,10)parseInt(09,10)
  • 是的!你说得对,谢谢你找到这个,现在我也可以在相关问题中看到它!
  • 旁注 2:jslint.com 如果您不传递 radix 参数,则会出现错误。

标签: javascript parseint


【解决方案1】:

parseInt 返回 0,因为该函数正在尝试确定它正在查看的数值系统的正确基数。

不管是不是好东西,以 0 开头的 JavaScript 数字都被视为八进制,这意味着没有 08 或 09。

希望对您有所帮助。

编辑:查看我对您的小提琴的编辑,它将10 参数添加到parseInt 以更改它使用的数字系统http://jsfiddle.net/jbrooksuk/NPtzA/5/

【讨论】:

    猜你喜欢
    • 2012-07-13
    • 2022-12-02
    • 2016-01-18
    • 1970-01-01
    • 2012-09-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    相关资源
    最近更新 更多