JS的整数转换函数parseInt在转换特别大的整数会出错:
parseInt(0.5); // => 0
parseInt(0.05); // => 0
parseInt(0.005); // => 0
parseInt(0.0005); // => 0
parseInt(0.00005); // => 0
parseInt(0.000005); // => 0
parseInt(0.0000005); // => 5
|

parseInt函数默认将输入参数视同“字符串String”类型,然后才开始解析这个输入参数;
如果输入参数不是字符串,则转化为“字符串String”类型。
但是对于对于非常小的和非常大的数字,在其被转换为字符串的同时转换为指数表示。
0.0000005 :"5e-7"
999999999999999999999 (21 9) : "1e+21"
|
那么对于
parseInt(0.0000005)
则转为字符串的指数:
parseInt("5e-7")
最后输出:
5