最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

parseInt()解析具有指数错误的数字文字

IT培训 admin 3浏览 0评论

parseInt()解析具有指数错误的数字文字

[我刚刚观察到,对于整数(包含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通过调用parseInt将传递的值转换为字符串,这将返回ToString,然后对其进行解析,因此它将考虑ToString并将返回它。

"-3.67394039744206e-15"

parseInt函数将其第一个参数转换为字符串,并返回整数或NaN

parseInt()解析具有指数错误的数字文字

[我刚刚观察到,对于整数(包含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通过调用parseInt将传递的值转换为字符串,这将返回ToString,然后对其进行解析,因此它将考虑ToString并将返回它。

"-3.67394039744206e-15"

parseInt函数将其第一个参数转换为字符串,并返回整数或NaN

发布评论

评论列表 (0)

  1. 暂无评论