幽默:Javascript为什么算术没算好?
JS的整数转换函数parseInt在转换特别大的整数会出错:
parseInt(0.5); // => 0 |
parseInt函数默认将输入参数视同“字符串String”类型,然后才开始解析这个输入参数;
如果输入参数不是字符串,则转化为“字符串String”类型。
但是对于对于非常小的和非常大的数字,在其被转换为字符串的同时转换为指数表示。
0.0000005 :"5e-7" |
那么对于
parseInt(0.0000005)
则转为字符串的指数:
parseInt("5e-7")
最后输出:
5