官网:math.js | an extensive math library for JavaScript and Node.js
github:GitHub - josdejong/mathjs: An extensive math library for JavaScript and Node.js
npm地址:mathjs - npm
Math.js 可以在 node.js 和浏览器中使用。
使用npm安装 math.js :
npm install mathjs
或者通过下载页面上列出的 CDN 之一下载 mathjs:
mathjs获取操作值的方法
用静态函数和常数(就像JavaScript的Math对象)
math.round(math.e, 3); // 2.718
math.add(2, 3); // 5
math.sqrt(-4); // 2i
math.pow([[-1, 2], [3, 1]],2); // [[7, 0], [0, 7]]
math.derivative('x^2 + x', 'x'); // 2 * x + 1
math.atan2(3, -3) / math.pi; // 0.75
未使用大数bignumber,计算结果会出现精度问题
math.bignumber('2.3e+500') // BigNumber, 2.3e+500
print(math.add(0.1, 0.2)) // number, 0.30000000000000004
print(math.multiply(10.22, 100)). //1022.0000000000001
print(math.divide(0.3, 0.2)) // number, 1.4999999999999998
可以使用以下函数创建 BigNumber,解决js计算的精度问题
print(math.add(math.bignumber(0.1), math.bignumber(0.2))) // BigNumber, 0.3
print(math.divide(math.bignumber(0.3), math.bignumber(0.2))) // BigNumber, 1.5
大多数函数可以根据输入的类型确定输出的类型:一个数字作为输入将返回一个数字作为输出,一个 BigNumber 作为输入返回一个 BigNumber 作为输出。无法确定输入输出类型的函数(例如math.evaluate
)使用默认数字类型number
,可以在实例化 math.js 时配置。要配置默认使用 BigNumbers 而不是数字,请像这样配置 math.js:
const { create, all } = require('..')
// configure the default type of numbers as BigNumbers
const config = {
number: 'BigNumber',
precision: 64,
}
const math = create(all, config)
math.evaluate('0.1 + 0.2') // BigNumber, 0.3
BigNumber 的默认精度为 64 位,可以使用选项配置
使用bignumber进行示例:
math.add(math.bignumber(0.1), math.bignumber(0.2)) // 加法 BigNumber, 0.3
math.subtract(math.bignumber(1), math.bignumber(0.9)) // 减法 BigNumber, 0.1
math.multiply(math.bignumber(4.10), math.bignumber(100)) // 乘法 BigNumber, 410
math.multiply(math.bignumber(10.22), math.bignumber(100)) //乘法 10.22
math.ceil(math.bignumber(6.10)/ math.bignumber(0.1)); //除法 向上取整 61
math.floor(math.bignumber(6.10)/ math.bignumber(0.1)); //除法 向下取整 61
math.round(math.bignumber(6.10)/ math.bignumber(0.1)); // 除法 四舍五入 61