1、math.js
- Math.js是一个用于JavaScript和Node.js的扩展数学库。它具有支持符号计算的灵活表达式解析器,大量内置函数和常量,并提供了集成的解决方案来处理不同的数据类型,例如数字,大数,复数,分数,单位和矩阵,强大且易于使用。
- 缺点:包过于庞大,不适合于小程序(微信小程序下:math.js打包后占1.6M,小程序主包只能2M)
2、math.js 安装
3、math.js 使用方法
import {
create,
all
} from 'mathjs';
const math = create(all, {
epsilon: 1e-12,
matrix: 'Matrix',
number: 'number',
precision: 64,
predictable: false,
randomSeed: null
});
math.config() // 获取配置信息
const {
format,
bignumber,
add,
subtract,
multiply,
divide,
number
} = math;
//加法
export const addPrecision = function(arg1, arg2) {
return number(add(bignumber(arg1),bignumber(arg2)));
};
//减法
export const subPrecision = function(arg1, arg2) {
return number(subtract(bignumber(arg1),bignumber(arg2)))
};
//乘法
export const mulPrecision = function(arg1, arg2) {
return number(multiply(bignumber(arg1),bignumber(arg2)))
};
//除法
export const divPrecision = function(arg1, arg2) {
return number(divide(bignumber(arg1),bignumber(arg2)))
};
4、big.js
- Big.js 是一个小型,快速的 JavaScript 库,用于任意精度的十进制算术。
- 优点:
- 简单的API
- 比Java的BigDecimal的JavaScript版本更快、更小、更易于使用
- 仅6KB大小
- 使用ECMAScript 3,因此适用于所有浏览器等等
- 缺点:小巧,不如math.js 来的功能多样且强大,但是精致小巧。(微信小程序下:仅10K不到)
5、big.js 安装
6、big.js 使用方法
import Big from 'big.js';
//加法
export const addPrecision = function(arg1, arg2) {
const num1 = (new Big(arg1)).plus(arg2)
return parseFloat(num1.toString());
};
//减法
export const subPrecision = function(arg1, arg2) {
const num1 = (new Big(arg1)).minus(arg2)
return parseFloat(num1.toString());
};
//乘法
export const mulPrecision = function(arg1, arg2) {
const num1 = (new Big(arg1)).times(arg2)
return parseFloat(num1.toString());
};
//除法
export const divPrecision = function(arg1, arg2) {
const num1 = (new Big(arg1)).div(arg2)
return parseFloat(num1.toString());
};