parseFloat()
函数解析一个字符串参数并返回一个浮点数。
parseFloat(value)
value
NaN
。
parseFloat
是个全局函数,不属于任何对象.
parseFloat
将它的字符串参数解析成为浮点数并返回.如果在解析过程中遇到了正负号(+或-),数字(0-9),小数点,或者科学记数法中的指数(e或E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数.同时参数字符串首位的空白符会被忽略.
如果参数字符串的第一个字符不能被解析成为数字,则parseFloat
返回NaN
.
你可以通过调用isNaN
函数来判断parseFloat的返回结果是否是
NaN
.如果让NaN
作为了任意数学运算的操作数,则运算结果必定也是NaN
.
parseFloat
也可转换和返回Infinity值
. 可以使用isFinite
函数来判断结果是否是一个有限的数值 (非Infinity
, -Infinity
, 或 NaN
).
parseFloat
也可以转换一个已经定义了 toString
或者 valueOf
方法的对象,它返回的值和在调用该方法的结果上调用 parseFloat
值相同。
parseFloat
返回正常数字下面的例子都返回3.14
parseFloat("3.14");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14more non-digit characters");
parseFloat
返回NaN下面的例子将返回NaN
parseFloat("FF2");
该函数通过正则表达式的方式,在需要更严格地转换float值时可能会有用:
var filterFloat = function (value) {
if(/^(\-|\+)?|(\.\d+)(\d+(\.\d+)?|(\d+\.)|Infinity)$/
.test(value))
return Number(value);
return NaN;
}
console.log(filterFloat('421')); // 421
console.log(filterFloat('-421')); // -421
console.log(filterFloat('+421')); // 421
console.log(filterFloat('Infinity')); // Infinity
console.log(filterFloat('1.61803398875')); // 1.61803398875
console.log(filterFloat('421e+0')); // 421
console.log(filterFloat('421hop')); // NaN
console.log(filterFloat('hop1.61803398875')); // NaN
console.log(filterFloat("999 888")); // NaN
console.log(filterFloat('.421')); // 0.421
console.log(filterFloat('421.')); // 421
注意上面的代码只是示例。
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition. | Standard | Initial definition. |
ECMAScript 5.1 (ECMA-262) parseFloat |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) parseFloat |
Standard |
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
parseFloat | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 1 | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support Yes |