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、基本的加减乘除
JavaScriptconst 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、基本的加减乘除
JavaScriptconst 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