当前位置: 首页 > Web前端 > JavaScript

为什么parseInt(0.0000009)===9在JavaScript中?

时间:2023-03-27 00:32:17 JavaScript

转换字符串0.0000009时出现异常,parseInt(0.0000009)//结果是9奇怪?parseInt通常用于将字符串转换为整数。它的函数定义如下parseInt(string,radix)其中string是要解析的字符串,radix是base。例如一些正常的例子parseInt('0.9')//0parseInt(0.009)//0parseInt(0.000009)//0parseInt('035')//35parseInt('015',8)//13parseInt('15px',10)//15原因分析为什么parseInt(0.0000009)的结果是9?查看MDN文档查看函数定义,其中字符串参数的定义是Thevaluetoparse。如果此参数不是字符串,则使用ToString抽象操作将其转换为字符串。此参数中的前导空格将被忽略。可以看到A参数总是会被当做一个字符串,当它不是字符串时,就会调用toString方法。我们再验证一下(0.009).toString()//0.009(0.0000009).toString()//9e-7注意到0.0000009在转换为字符串时会用科学计数法表示。调用(0.0000009).toString()实际上等同于parseInt('9e-7'),结果显而易见。其他例子也可能存在以下问题。parseInt(999999999999999999999)//结果为1parseInt(0.0000006)//结果为6作者简介MZ,ModStart开源项目发起人,对各种编程语言略知一二。保持杯子空着,为生活编程。