Ion*_*zău 11 javascript numbers parseint node.js
我刚刚观察到,在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
Run Code Online (Sandbox Code Playgroud)
我预计这parseInt也会回归0.在较低级别发生了什么?为什么在这种情况下parseInt返回3(源代码中的一些片段会受到赞赏)?
在这个例子中我正在使用node v0.12.1,但我希望在浏览器和其他JavaScript引擎中也会发生同样的情况.
Aru*_*hny 16
我认为原因是parseInt通过调用ToString将传递的值转换为字符串将返回"-3.67394039744206e-15",然后解析它以便它将考虑-3并将返回它.
parseInt函数将其第一个参数转换为字符串,解析它,并返回一个整数或NaN
| 归档时间: |
|
| 查看次数: |
2261 次 |
| 最近记录: |