parseFloat - JavaScript 编辑

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');

规范

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

浏览器兼容性

BCD tables only load in the browser

相关链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:178 次

字数:5997

最后编辑:7 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文