gpt4 book ai didi

javascript - JS parseInt() 返回 0

转载 作者:行者123 更新时间:2023-12-02 20:26:17 25 4
gpt4 key购买 nike

Possible Duplicate:
Why parseInt() works like this?

我遇到了 parseInt() 意外返回 0 的问题,这是一个示例:

parseInt('-06') = -6
parseInt('-07') = -7
parseInt('-08') = 0

为什么结果是0?如果我继续下降(-09、-10 等),情况也是如此。字符串的格式来 self 的框架,所以我需要处理它。谢谢!

最佳答案

使用parseInt时需要传递一个基数参数

parseInt('-08', 10);

如果您不这样做,并且您正在解析的字符串有前导零,则 parseInt 会根据您的浏览器产生不同的结果。最常见的问题是字符串将被视为以 8 为基数的数字,这就是您所看到的。

这就是为什么这适用于“-06”和“-07”——它们都是有效的基数 8 数字。由于“-08”不是有效的 8 进制数字,因此解析失败,并返回 0。

来自MDN

radix

An integer that represents the radix of the above mentioned string. While this parameter is optional, always specify it to eliminate reader confusion and to guarantee predictable behavior. Different implementations produce different results when a radix is not specified.

<小时/>

另请注意,您可以使用一元 + 运算符将这些字符串转换为数字:

​var str = '-08';
var num = +str;

console.log(num);​​​

//logs -8

DEMO

关于javascript - JS parseInt() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com