javascript – parseInt()解析不正确的指数的数字文字

前端之家收集整理的这篇文章主要介绍了javascript – parseInt()解析不正确的指数的数字文字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚观察到,在整数(包含e字符的数字)的情况下,parseInt函数不关心小数.

举一个例子:-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(来自源代码的一些片段将不胜感激)?

在这个例子中,我使用的是节点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相关文章