parseFloat

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

语法

parseFloat(string)

参数

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

返回值

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

描述

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

  • 如果 parseFloat 在解析过程中遇到了正号(+)、负号(- U+002D HYPHEN-MINUS)、数字(0-9)、小数点(.)、或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。
  • 第二个小数点的出现也会使解析停止(在这之前的字符都会被解析)。
  • 参数首位和末位的空白符会被忽略。
  • 如果参数字符串的第一个字符不能被解析成为数字, parseFloat 返回 NaN
  • parseFloat 也可以解析并返回 Infinity
  • parseFloat解析 BigIntNumbers, 丢失精度。因为末位 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');

规范

Specification Status Comment
ECMAScript 1st Edition. Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
parseFloat
Standard
ECMAScript 2015 (6th Edition, ECMA-262)
parseFloat
Standard
ECMAScript Latest Draft (ECMA-262)
parseFloat
Draft

浏览器兼容性

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
parseFloatChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

相关链接