阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS parseFloat()

      功能

      parseFloat() 函数解析一个参数(必要时先转换为字符串)并返回一个浮点数。

      演示

      function circumference(r) {
        return parseFloat(r) * 2.0 * Math.PI;
      }
      
      console.log(circumference(4.567));
      // expected output: 28.695307297889173
      
      console.log(circumference('4.567abcdefgh'));
      // expected output: 28.695307297889173
      
      console.log(circumference('abcdefgh'));
      // expected output: NaN
      

      语法

      parseFloat(string)
      

      参数

      string

      需要被解析成为浮点数的值。

      返回值

      给定值被解析成浮点数。如果给定值不能被转换成数值,则会返回 NaN。

      描述

      parseFloat 是个全局函数,不属于任何对象。

      • 如果 parseFloat 在解析过程中遇到了正号(+)、负号(- U+002D HYPHEN-MINUS)、数字(0-9)、小数点(.)、或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。
      • 第二个小数点的出现也会使解析停止(在这之前的字符都会被解析)。
      • 参数首位和末位的空白符会被忽略。
      • 如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN。
      • parseFloat 也可以解析并返回 Infinity。
      • parseFloat 解析 BigInt 为 Numbers, 丢失精度。因为末位 n 字符被丢弃。 考虑使用 Number(value) 进行更严谨的解析,只要参数带有无效字符就会被转换为 NaN 。

      parseFloat 也可以转换一个已经定义了 toString 或者 valueOf 方法的对象,它返回的值和在调用该方法的结果上调用 parseFloat 值相同。

      例子

      例子:parseFloat 返回正常数字

      下面的例子都返回 3.14

      parseFloat(3.14);
      parseFloat('3.14');
      parseFloat('  3.14  ');
      parseFloat('314e-2');
      parseFloat('0.0314E+2');
      parseFloat('3.14some non-digit characters');
      parseFloat({ toString: function() { return "3.14" } });
      

      parseFloat 返回 NaN

      下面的例子将返回 NaN

      parseFloat("FF2");
      

      parseFloat 和 BigInt

      以下例子均返回 900719925474099300,当整数太大以至于不能被转换时将失去精度。

      parseFloat(900719925474099267n);
      parseFloat('900719925474099267n');
      

      规范

      SpecificationStatusComment
      ECMAScript 1st Edition.StandardInitial definition.
      ECMAScript 5.1 (ECMA-262)
      parseFloat
      Standard
      ECMAScript 2015 (6th Edition, ECMA-262)
      parseFloat
      Standard
      ECMAScript Latest Draft (ECMA-262)
      parseFloat
      Draft
      目录
      目录