# 精度设置 config

URL: https://caijiao.org/decimaljs/03-decimal-instance/03-config
Source: docs/decimaljs/03-decimal-instance/03-config.md
Description: 介绍 decimal.js 中的精度配置选项，包括设置默认精度、舍入模式和指数范围，帮助用户根据需求调整计算行为。

decimal.js 提供灵活的全局配置选项，让你可以自定义数值计算的精度和舍入行为，满足不同业务场景的需求。

## 1. 设置默认精度（precision）

`Decimal.precision` 属性用于设置所有 Decimal 实例默认的有效数字位数（精度）。默认为 20。

```js
import Decimal from 'decimal.js';

Decimal.set({ precision: 30 });

const a = new Decimal('1.23456789012345678901234567890123');
const b = new Decimal('0.00000000000000000000000000001234');

console.log(a.plus(b).toString());  // 计算时将使用 30 位有效数字精度
````

> 注意：精度越高，计算性能可能受到一定影响。

## 2. 舍入模式（rounding）

`Decimal.rounding` 属性设置舍入模式，决定结果如何四舍五入。常用的模式包括：

| 模式值 | 舍入方式      | 说明          |
| --- | --------- | ----------- |
| 0   | 向零舍入      | 截断          |
| 1   | 向下舍入（地板）  | 朝负无穷方向舍入    |
| 2   | 向上舍入（天花板） | 朝正无穷方向舍入    |
| 3   | 四舍五入（默认）  | 四舍五入        |
| 4   | 银行家舍入     | 四舍五入到最接近的偶数 |

示例：

```js
Decimal.set({ rounding: 1 });

const x = new Decimal('1.555');
console.log(x.toDecimalPlaces(2).toString());  // "1.55"
```

## 3. 指数范围（toExpNeg 和 toExpPos）

用于控制在转换为字符串时，何时以科学计数法表示。

* `Decimal.toExpNeg`：当指数小于该值时，使用科学计数法（默认 -7）
* `Decimal.toExpPos`：当指数大于该值时，使用科学计数法（默认 20）

```js
Decimal.set({ toExpNeg: -5, toExpPos: 10 });

console.log(new Decimal('0.000001').toString());  // 不使用科学计数法
console.log(new Decimal('1e+15').toString());     // 使用科学计数法
```

---

通过合理配置这些参数，你可以让 decimal.js 的计算更加符合你的业务需求和表现形式。
