仅当值 = 9 或 8 时才会出现奇怪的 javascript 错误

发布于 2024-12-22 20:33:52 字数 358 浏览 2 评论 0原文

可能的重复:
JavaScript parseInt 八进制错误的解决方法

我有这个 http://jsfiddle.net/gMDfk/1/ 警报返回 0 当值等于八或九时,jsfiddle 中的代码可以完美工作。 这是怎么回事?

Possible Duplicate:
Workarounds for JavaScript parseInt octal bug

well i have this
http://jsfiddle.net/gMDfk/1/
The alert returns 0
The code in jsfiddle works perfect when value is equal to eight or nine..
Wtf is going on here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

哭了丶谁疼 2024-12-29 20:33:52

在 parseInt: 中添加 , 10

parseInt( val, 10 );

告诉 JS 将 is 视为以 10 为基数的数字。默认情况下,任何以 0 开头的内容都被视为八进制、以 8 为基数的数字。由于 09 不是有效的 8 进制数字,因此您将得到 0

add a , 10 to parseInt:

parseInt( val, 10 );

which tells JS to treat is as a base-10 number. By default, anything starting with 0 is treated as an octal, base-8 number. Since 09 isn't a valid base-8 number, you'll get 0

如果没结果 2024-12-29 20:33:52

数字前面加上 0 意味着它被 JavaScript 解释为八进制。试试这个:

alert(parseInt("010")); //shows "8"

您可以通过将 10 作为第二个参数传递给 parseInt 来修复它,这让它知道您希望以十进制解析它。

alert(parseInt("010", 10)); //shows "10"

Prefixing a number with a 0 means it's interpreted as octal by javascript. Try this:

alert(parseInt("010")); //shows "8"

You can fix it by passing 10 as a second param to parseInt, this lets it know you want it parsed in decimal.

alert(parseInt("010", 10)); //shows "10"
蛮可爱 2024-12-29 20:33:52

Parseint 应使用基数参数:parseint(value, radix)。在你的例子中,基数是 10。否则,它将把它当作八进制。

Parseint should use radix parameter: parseint (value, radix). In your case, radix is 10. Otherwise, it will take it as octal.

茶花眉 2024-12-29 20:33:52

指定基础

parseInt(some_id_value,10);

specify the base

parseInt(some_id_value,10);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文