前端精度计算插件--decimal.js

1,597 阅读1分钟

首先,你需要安装 decimal.js 库: npm install decimal.js

在代码中引入插件:

const Decimal = require('decimal.js');

或者

import Decimal from 'decimal.js';

以下则列举一些插件的基本用法:

##### 创建一个 Decimal 实例
const a = new Decimal(0.1); // 从数字创建
const b = new Decimal('0.2'); // 从字符串创建
const c = new Decimal(a); // 从另一个 Decimal 实例创建

##### 加法
const sum = a.plus(b);
console.log(sum.toString()); // "0.3"

##### 减法
const difference = a.minus(b);
console.log(difference.toString()); // "-0.1"

##### 乘法
const product = a.times(b);
console.log(product.toString()); // "0.02"

##### 除法
const quotient = a.div(b);
console.log(quotient.toString()); // "0.5"

##### 取模
const remainder = a.mod(b);
console.log(remainder.toString()); // "0.1"

##### 幂运算
const pow = a.pow(2);
console.log(pow.toString()); // "0.01"

##### 平方根
const sqrt = a.sqrt();
console.log(sqrt.toString()); // "0.31622776601683793319988935444327"

##### 比较
const x = new Decimal(3);
const y = new Decimal(4);

console.log(x.isGreaterThan(y)); // false
console.log(x.isLessThan(y)); // true
console.log(x.equals(y)); // false

##### 格式化输出
const d = new Decimal(12345.6789);

console.log(d.toFixed(2)); // "12345.68"
console.log(d.toExponential(2)); // "1.23e+4"
console.log(d.toPrecision(6)); // "12345.7"

##### 取整与取绝对值
const e = new Decimal(-123.456);

console.log(e.toInteger().toString()); // "-123"
console.log(e.abs().toString()); // "123.456"

##### 计算复利收益
// 计算年复利收益
const principal = new Decimal(1000);
const rate = new Decimal(0.05);
const years = new Decimal(10);

const amount = principal.times(Decimal(1).plus(rate).pow(years));
console.log(amount.toFixed(2)); // 输出: "1628.89"

配置全局设置

你可以通过 Decimal.set 来配置全局设置,比如精度和舍入模式:

Decimal.set({ precision: 20, rounding: Decimal.ROUND_HALF_UP });

在typeScript中使用,可以安装相关的类型定义文件:

npm install @types/decimal.js --save-dev

在代码中如下使用:

import Decimal from 'decimal.js';

const a: Decimal = new Decimal(0.1);
const b: Decimal = new Decimal('0.2');

const sum: Decimal = a.plus(b);
console.log(sum.toString()); // 输出: "0.3"