diff --git a/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.md b/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.md index 5068535c4deb48..d92d9c7d171754 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/number/toexponential/index.md @@ -3,52 +3,55 @@ title: Number.prototype.toExponential() slug: Web/JavaScript/Reference/Global_Objects/Number/toExponential --- -{{JSRef("Global_Objects", "Number")}} +{{JSRef}} -## 概述 +{{jsxref("Number")}} 值的 **`toExponential()`** 方法返回一个以指数表示法表示该数字的字符串。 -**`toExponential()`** 方法以指数表示法返回该数值字符串表示形式。 +{{EmbedInteractiveExample("pages/js/number-toexponential.html")}} ## 语法 -```plain -numObj.toExponential(fractionDigits) +```js-nolint +toExponential() +toExponential(fractionDigits) ``` ### 参数 -- fractionDigits - - : 可选。一个整数,用来指定小数点后有几位数字。默认情况下用尽可能多的位数来显示数字。 +- `fractionDigits` {{optional_inline}} + - : 可选。一个整数,用来指定小数点后有几位数字。默认设置为完整表示该数字所需要的数字。 ### 返回值 -一个用幂的形式 (科学记数法) 来表示{{jsxref("Number")}} 对象的字符串。小数点后以 fractionDigits 提供的值来四舍五入。如果 `fractionDigits` 参数被忽略了,小数点后的将尽可能用最多的位数来表示该数值。 - -对数值字面量使用 `toExponential()` 方法,且该数值没有小数点和指数时,应该在该数值与该方法之间隔开一个空格,以避免点号被解释为一个小数点。也可以使用两个点号调用该方法。 - -如果一个数值的小数位数多余 `fractionDigits` 参数所提供的,则该数值将会在 `fractionDigits` 指定的小数位数处四舍五入。可以查看 {{jsxref("Number.toFixed", "toFixed()")}} 方法描述中关于四舍五入的讨论,同样应用于 `toExponential()` 方法。 +一个以指数表示法表示给定 {{jsxref("Number")}} 对象的的字符串,其小数点前为一位数字,小数点后舍入到 `fractionDigits` 位。 ### 异常 -- {{jsxref("Global_Objects/RangeError", "RangeError")}} - - : 如果 _fractionDigits_ 太小或太大将会抛出该错误。介于 0 和 20(包括 20)之间的值不会引起 `RangeError` 。执行环境也可以支持更大或更小范围。 -- {{jsxref("Global_Objects/TypeError", "TypeError")}} - - : 如果该方法在一个非数值类型对象上调用。 +- {{jsxref("RangeError")}} + - : 如果 `fractionDigits` 不是介于 `0` 和 `100` 之间(包含两端)的整数,则抛出该错误。 +- {{jsxref("TypeError")}} + - : 如果在非 {{jsxref("Number")}} 对象上调用该方法,则抛出该错误。 -## 示例 +## 描述 -```js -var numObj = 77.1234; +如果省略了 `fractionDigits` 参数,则小数点后的位数默认为精确表示该值的所需的位数。 -alert("numObj.toExponential() is " + numObj.toExponential()); //输出 7.71234e+1 +如果你为一个没有指数也没有小数点的数字字面量使用 `toExponential()` 方法。请在方法调用之前的点之前留出空格,以防止该点被解释为小数点。 -alert("numObj.toExponential(4) is " + numObj.toExponential(4)); //输出 7.7123e+1 +如果一个数字的位数比 `fractionDigits` 参数指定的位数更多,则该数字将被舍入为最接近的数字,请参阅 {{jsxref("Number.prototype.toFixed", "toFixed()")}} 方法的描述中关于舍入的讨论,这也适用于 `toExponential()`。 -alert("numObj.toExponential(2) is " + numObj.toExponential(2)); //输出 7.71e+1 +## 示例 + +### 使用 toExponential -alert("77.1234.toExponential() is " + (77.1234).toExponential()); //输出 7.71234e+1 +```js +const numObj = 77.1234; -alert("77 .toExponential() is " + (77).toExponential()); //输出 7.7e+1 +console.log(numObj.toExponential()); // 7.71234e+1 +console.log(numObj.toExponential(4)); // 7.7123e+1 +console.log(numObj.toExponential(2)); // 7.71e+1 +console.log((77.1234).toExponential()); // 7.71234e+1 +console.log((77).toExponential()); // 7.7e+1 ``` ## 规范 @@ -59,8 +62,9 @@ alert("77 .toExponential() is " + (77).toExponential()); //输出 7.7e+1 {{Compat}} -## 相关链接 +## 参见 +- [`core-js` 中 `Number.prototype.toExponential` 的 polyfill,并对此方法进行了修复](https://github.com/zloirock/core-js#ecmascript-number) - {{jsxref("Number.prototype.toFixed()")}} - {{jsxref("Number.prototype.toPrecision()")}} - {{jsxref("Number.prototype.toString()")}}