教程 decimaljs tutorial

常用配置模板

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,能有效兼顾性能和精度,满足多样化的业务需求。