Skip to content

Commit

Permalink
[zh-cn]: update translation of Number.toExponential() (#16090)
Browse files Browse the repository at this point in the history
  • Loading branch information
JasonLamv-t authored Sep 26, 2023
1 parent 9ac91b5 commit 34886bc
Showing 1 changed file with 29 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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_ 太小或太大将会抛出该错误。介于 020(包括 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
```

## 规范
Expand All @@ -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()")}}

0 comments on commit 34886bc

Please sign in to comment.