您的位置:

详解JavaScript中的parseFloat()

一、返回值

parseFloat()是在JavaScript中非常重要的一个函数,它的作用是将一个字符串解析成一个浮点数。该函数会忽略字符串前面的空格,直到找到第一个非空字符。然后从该字符开始,返回一个连续的数字字符串,直至字符串末尾,或者遇到一个无法识别的字符。最后返回浮点数。

    parseFloat('34.45'); //返回34.45

值得注意的是,如果参数不能被解析成数字,则返回NaN。

    parseFloat('hello world'); //返回NaN

如果传入空字符串,则返回NaN。

    parseFloat(''); //返回NaN

二、解析机制

parseFloat()解析器会根据以下规则解析字符串:

1、忽略前导空白符。这意味着在首字符之前,字符串中的所有空格都会被浏览器忽略。

2、如果第一个字符不能被转换成数字,返回NaN。字符串中第一个非空格字符无法转换成数字时,parseFloat()会返回NaN。

3、取得数字从第一个非空白符字符开始,直到字符串末尾或者碰到一个非数字字符停止。返回解析到的数字部分。

4、小数点只能出现一次。如果一个字符串有多个小数点,parseFloat()会只返回第一个小数点之前的数字。如果第一个小数点之后还有其他字符出现,则会被丢弃。

5、科学计数法如果字符串中包含有一个E 或 e,parseFloat()会把前面的部分作为一个十进制浮点数,后面的部分作为 10 的幂来解释。即 E 或 e 之前的数字相当于位数,之后的数字相当于指数。

    parseFloat('450.67px'); //返回450.67
    parseFloat('2020年'); //返回2020
    parseFloat('3.14.159'); //返回3.14
    parseFloat('2e3'); //返回2000
    parseFloat('3.5e-5haha'); //返回0.000035

三、局限性

注意到parseFloat()对字符串的解析是从左到右的,如果字符串开始的数字非常大,就会很容易超出JavaScript中数字类型的精度范围限制,造成数据的丢失。

    parseFloat('1000000000000000000000000000000000000000.67'); //返回1.0000000000000001e+39

因此,在处理大数值情况时,建议使用BigInt类型。

四、适用范围

parseFloat()通常在处理字符串转化成数字的时候使用,其常常与parseInt()一同使用。与parseInt()相比,parseFloat()可以解析浮点数,而parseInt()则只能解析整数。

    parseInt('34.45'); //返回34

当需要转换浮点数类型字符串时,优先考虑使用parseFloat()函数。

五、总结

parseFloat()是JavaScript中一个重要的解析字符串的函数,主要用于将字符串转换成浮点数。通过使用不同的参数,我们可以掌握其对不同数据类型的解析规则,这样在实际开发中便可以更好地充分应用到该函数。