parseFloat
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
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
语法
js
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
js
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
js
parseFloat("FF2");
parseFloat 和 BigInt
以下例子均返回 900719925474099300
,当整数太大以至于不能被转换时将失去精度。
js
parseFloat(900719925474099267n);
parseFloat("900719925474099267n");
规范
Specification |
---|
ECMAScript® 2025 Language Specification # sec-parsefloat-string |
浏览器兼容性
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
parseFloat |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.