写在前面的话:
在开发中,我们会遇到一些不可避免的数字运算,一位小数的,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、安装和引用
// NodeJS npm install -save decimal.js const Decimal = require("decimal.js"); // ES6 module // import Decimal from "decimal.js"; import {Decimal} from "decimal.js";
2、基本的加减乘除
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、安装和引用
// Node.js npm install bignumber.js const BigNumber = require('bignumber.js'); // ES6 module import BigNumber from "./bignumber.js"
2、基本的加减乘除
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、安装和引用
// Node.js npm install big-number var BigNumber = require('big-number');
2、基本运算
// 加 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);
还没有评论,来说两句吧...