0%

decimal.js的使用

介绍

decimal.js 是一个 JavaScript 库,用于处理任意精度的十进制数。它非常适合处理金融数据和其他需要高精度的场景。

decimal.js地址

参考API

安装 decimal.js

1
npm i decimal.js

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 导入
import { Decimal } from "decimal.js"; // ES6


let x = new Decimal(123.4567);
let y = new Decimal("123456.7e-3");
let z = new Decimal(x);
let bool = x.equals(y) && y.equals(z) && x.equals(z); // true
console.log(bool); // true

// Decimal.set({ precision: 20 });
var a = new Decimal("0.1");
var b = new Decimal("0.2");
console.log(a.plus(b).toString()); // 输出 "0.3"

const num1 = new Decimal("0.12365");
const num2 = new Decimal(100); // 也可以使用数字来创建 Decimal 对象

const sum = num1.plus(num2); // 加法 -> 100.12365
const difference = num1.minus(num2); // 减法 -> -99.87635
const product = num1.times(num2); // 乘法 -> 12.365
const quotient = num1.dividedBy(num2); // 除法 -> 0.0012365

console.log(sum.toString()); // 100.12365
console.log(difference.toString()); // -99.87635
console.log(product.toString()); // 12.365
console.log(quotient.toString()); // 0.0012365

Decimal.config({
precision: 20, // 设置精度为20位
rounding: Decimal.ROUND_HALF_UP, // 设置舍入模式
});

const divisionResult = new Decimal("1").dividedBy(new Decimal("3"));
console.log(divisionResult.toString()); // 输出 "0.33333333333333333333"

const absValue = num1.abs(); // 绝对值
const isGreaterThan = num1.greaterThan(num2); // 比较大小
const power = num1.pow(2); // 幂运算
console.log(absValue);
console.log(isGreaterThan); // false
console.log(power);

const numAsString = num1.toString(); // 转换为字符串
const numAsNumber = num1.toNumber(); // 转换为数字
console.log(numAsString); // 0.12365
console.log(numAsNumber); // 0.12365
赏包辣条吃吧