JavaScript中parseInt()函数介绍及应用 | 您所在的位置:网站首页 › java中parseint的范围 › JavaScript中parseInt()函数介绍及应用 |
parseInt() 是一个内置的JavaScript函数,可以从数字字符串中解析出整数。例如,让我们从数字字符串中解析出整数'100': const number = parseInt('100'); number; // 100正如预期的那样,'100' 被解析为整数100 。 parseInt(numericalString, radix) 还接受第二个参数:数字字符串参数所在的拉德数。基数参数允许你从不同的数字基数上解析整数,最常见的是2、8、10和16。 让我们用parseInt() 来解析一个以2为基数的数字字符串: const number = parseInt('100', 2); number; // 4parseInt('100', 2) 将 '100'解析为以2为基数的整数:因此它返回值4 (十进制)。 这几乎是对parseInt() 的一个简短介绍。 1.parseInt() 的一个神秘的行为parseInt(numericalString) parseInt()总是将其第一个参数转换为字符串(如果它不是字符串),然后将该数字字符串解析为整数值。 这就是为什么你可以(但不应该!)使用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提取浮点数的整数部分,如0.5,0.05, 等等,结果是0 。这和预期的效果一样。 那么提取0.0000005 的整数部分呢? parseInt(0.0000005); // => 5parseInt() 将浮点数0.0000005 解析为 5... 。有趣的是,这有点出乎意料... 为什么parseInt(0.0000005) 有这样一个神秘的行为? 2.揭开*parseInt()*的神秘面纱让我们再看看parseInt(numericalString) 对它的第一个参数做了什么:如果它不是一个字符串,那么它就被转换为一个字符串,然后被解析,并返回解析后的整数。 这可能是第一条线索。 那么让我们试着手动将浮点数转换为字符串。 String(0.5); // => '0.5' String(0.05); // => '0.05' String(0.005); // => '0.005' String(0.0005); // => '0.0005' String(0.00005); // => '0.00005' String(0.000005); // => '0.000005' String(0.0000005); // => '5e-7'显式转换为字符串的String(0.0000005) ,其行为与其他浮点数不同:它是指数符号的字符串表示!这是第二条--也是最重要的一条。 这是第二条--也是一条重要的线索! 而当指数符号被解析为整数时,你会得到数字5 。 parseInt(0.0000005); // => 5 // same as parseInt(5e-7); // => 5 // same as parseInt('5e-7'); // => 5parseInt('5e-7') 考虑到第一个数字5 ,但跳过'e-7' 。 神秘的问题解决了!因为parseInt() 总是将其第一个参数转换为字符串,小于10-6的浮点数被写成指数符号。然后parseInt() ,从浮点数的指数符号中提取整数。 顺便说一下,为了安全地提取浮点数的整数部分,我推荐Math.floor() 函数。 Math.floor(0.5); // => 0 Math.floor(0.05); // => 0 Math.floor(0.005); // => 0 Math.floor(0.0005); // => 0 Math.floor(0.00005); // => 0 Math.floor(0.000005); // => 0 Math.floor(0.0000005); // => 0 3.结论parseInt() 是将数字字符串解析为整数的函数。 当试图用parseInt() 来提取浮点数的整数部分时,必须小心。 小于10-6的浮点数(例如:0.0000005 ,相当于5*10-7)与字符串对话时,要用指数符号来写(例如:5e-7 是0.0000005 的指数符号)。这就是为什么在parseInt() 中使用这样的小浮点数会导致意想不到的结果:只有指数符号的符号部分(例如:5e-7 的5 )被解析了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |