编程语言
首页 > 编程语言> > JavaScript | 大数计算、浮点运算(decimal.js、bignumber.js、big-number)简易的使用文档

JavaScript | 大数计算、浮点运算(decimal.js、bignumber.js、big-number)简易的使用文档

作者:互联网

写在前面的话:

在开发中,我们会遇到一些不可避免的数字运算,一位小数的,N位小数的,0.1 + 0.2 都不等于0.3,就别说3.1415926 * 3.1415926了。这些精度问题给我们带来了很多困扰。NPM是个好东西,有很多大佬造的轮子(工具),然后我们搬来装在自己的车上,不需要自己薅光头发的去制造。这篇就简单介绍三个插件的用法。

decimal.js

GitHub:https://github.com/MikeMcl/decimal.js

API:http://mikemcl.github.io/decimal.js/

Used by: 6500 +

decimal.js的特点就是处理整数和浮点数,还处理十六进制、二进制和八进制值。

1、安装和引用

JavaScript
// NodeJS

npm install -save decimal.js

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

// ES6 module
// import Decimal from "decimal.js";
import {Decimal} from "decimal.js";

2、基本的加减乘除

JavaScript
const a = 9.99;
const b = 8.03;

// 加法
let c = new Decimal(a).add(new Decimal(b)).toNumber();

// 减法
let d = new Decimal(a).sub(new Decimal(b)).toNumber();

// 乘法
let e = new Decimal(a).mul(new Decimal(b)).toNumber();
    
// 除法
let f = new Decimal(a).div(new Decimal(b)).toNumber();

bignumber.js

GitHub:https://github.com/MikeMcl/bignumber.js

API:http://mikemcl.github.io/bignumber.js/

Used by:165000 +

bignumber.js的特点就是处理整数和小数,跟decimal.js是一个作者,至于两者之间的区别,我暂时没深层次的研究,但是区别肯定是有的,因为我曾经使用时候算错过,因为换了一下,事后也没去研究。

1、安装和引用

JavaScript
// Node.js

npm install bignumber.js

const BigNumber = require('bignumber.js');

// ES6 module
import BigNumber from "./bignumber.js"

2、基本的加减乘除

JavaScript
const a = 9.99;
const b = 8.03;

// 加
let c = new BigNumber(a).plus(b).toNumber();

// 减
let d = new BigNumber(a).minus(b).toNumber();

// 乘
let e = new BigNumber(a).multipliedBy(b).toNumber();

// 除
let f = new BigNumber(a).dividedBy(b).toNumber();

big-number

GitHub:https://github.com/alexbardas/bignumber.js

API:http://alexbardas.github.io/bignumber.js/

Used by:6700 +

big-number 的特点就是轻量级,支持大数据计算,支持最基本算术运算(+, - ,*,/,%,^,abs)。但是相比上面两个,就没那么多的功能。

1、安装和引用

JavaScript
// Node.js

npm install big-number

var BigNumber = require('big-number');

2、基本运算

JavaScript
// 加

BigNumber(2).plus(10); // or
BigNumber(2).add(10);

// 减
BigNumber(2).minus(10); // or
BigNumber(2).subtract(10);

// 乘
BigNumber(2).multiply(10); // or
BigNumber(2).mult(10);

// 除
BigNumber(2).divide(10); // or
BigNumber(2).div(10);

// 取余
BigNumber(53).mod(14);

// 乘幂
BigNumber(2).power(10); // or
BigNumber(2).pow(10);

标签:bignumber,BigNumber,big,Decimal,js,new,decimal
来源: https://www.cnblogs.com/heihei1990/p/14743388.html