JavaScript中parseInt()函数介绍及应用 您所在的位置:网站首页 java中parseint的范围 JavaScript中parseInt()函数介绍及应用

JavaScript中parseInt()函数介绍及应用

2023-12-11 05:36| 来源: 网络整理| 查看: 265

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; // 4

parseInt('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); // => 5

parseInt() 将浮点数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'); // => 5

parseInt('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 实验室设备网 版权所有