# 常用配置模板

URL: https://caijiao.org/decimaljs/12-appendix/02-config-template
Source: docs/decimaljs/12-appendix/02-config-template.md
Description: 汇总 decimal.js 常用的全局配置模板，方便快速应用到项目中，满足不同场景的精度与舍入需求。

decimal.js 允许通过 `Decimal.set()` 进行全局配置，以下是一些常用的配置模板示例。

## 1. 默认高精度配置（适合财务、科学计算）

```js
import Decimal from 'decimal.js';

Decimal.set({
  precision: 30,                  // 小数点后最大有效位数
  rounding: Decimal.ROUND_HALF_UP, // 四舍五入（常用舍入模式）
  toExpNeg: -9,                  // 小于此指数使用普通计数法，不使用科学计数法
  toExpPos: 20,                  // 大于此指数使用普通计数法
  minE: -999999,                 // 最小指数值
  maxE: 999999                   // 最大指数值
});
````

## 2. 轻量快速配置（适合性能敏感且精度需求一般）

```js
Decimal.set({
  precision: 15,
  rounding: Decimal.ROUND_HALF_EVEN, // 银行家舍入，减少累计误差
  toExpNeg: -7,
  toExpPos: 16
});
```

## 3. 货币计算专用配置（保留2位小数，严格舍入）

```js
Decimal.set({
  precision: 20,
  rounding: Decimal.ROUND_HALF_UP,
  toExpNeg: -2,
  toExpPos: 2
});
```

## 4. 科学计数法优先显示（适合天文、物理等领域）

```js
Decimal.set({
  precision: 40,
  rounding: Decimal.ROUND_DOWN,
  toExpNeg: -100,
  toExpPos: 100
});
```

## 5. 禁用科学计数法显示（所有数字均使用普通数字格式）

```js
Decimal.set({
  toExpNeg: -1e+9,
  toExpPos: 1e+9
});
```

## 6. 自定义舍入模式示例

| 舍入模式常量                    | 描述       |
| ------------------------- | -------- |
| `Decimal.ROUND_UP`        | 向远离零方向舍入 |
| `Decimal.ROUND_DOWN`      | 向零方向舍入   |
| `Decimal.ROUND_CEIL`      | 向正无穷方向舍入 |
| `Decimal.ROUND_FLOOR`     | 向负无穷方向舍入 |
| `Decimal.ROUND_HALF_UP`   | 四舍五入（默认） |
| `Decimal.ROUND_HALF_DOWN` | 五舍六入     |
| `Decimal.ROUND_HALF_EVEN` | 银行家舍入    |

## 应用示例

```js
// 设置全局配置
Decimal.set({
  precision: 25,
  rounding: Decimal.ROUND_HALF_EVEN,
  toExpNeg: -7,
  toExpPos: 20
});
```

---

合理配置 decimal.js，能有效兼顾性能和精度，满足多样化的业务需求。
