gpt4 book ai didi

javascript - parseInt() 错误地解析带有指数的数字文字

转载 作者:IT老高 更新时间:2023-10-28 23:14:17 25 4
gpt4 key购买 nike

我刚刚观察到 parseInt 函数在整数(包含 e 字符的数字)的情况下不关心小数。

举个例子:-3.67394039744206e-15

> parseInt(-3.67394039744206e-15)
-3
> -3.67394039744206e-15.toFixed(19)
-3.6739e-15
> -3.67394039744206e-15.toFixed(2)
-0
> Math.round(-3.67394039744206e-15)
0

我预计 parseInt 也会返回 0。低层发生了什么?为什么在这种情况下 parseInt 返回 3 (源代码中的一些片段将不胜感激)?

在此示例中,我使用的是 node v0.12.1,但我希望在浏览器和其他 JavaScript 引擎中也会发生同样的情况。

最佳答案

我认为原因是parseInt通过调用 ToString 将传递的值转换为字符串它将返回 "-3.67394039744206e-15",然后对其进行解析,以便考虑 -3 并返回它。

mdn documentation

The parseInt function converts its first argument to a string, parses it, and returns an integer or NaN

关于javascript - parseInt() 错误地解析带有指数的数字文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30160919/

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