mathjs的简单使用

import {create, all} from 'mathjs';
const math = create(all, {
    epsilon: 1e-12,
    matrix: 'Matrix',
    number: 'number',
    precision: 64,
    predictable: false,
    randomSeed: null
});
math.config() // 获取配置信息
math.config({ // 改变配置信息
    number: 'BigNumber', // 识别 浮点数进行计算,但是作用有限,有些方法依然不受此配置影响
)
const {format, bignumber, add, subtract, multiply, divide} = math;
// 从 math 身上使用的方法,都可受 配置的影响,但也不是绝对的 比如 加减乘除就不受影响,还有其他的
  • format
     可以获取到 Decimal 类的值
     如果不能直接拿到结果,可以使用这个试一下
     format(add(bigNumber(0.1), bigNumber(0.2))) // 这种情况下 add返回的就是 Decimal 类型,format可以直接拿到值
  • bignumber
    告诉mathjs 这个值是个 浮点数,不使用这个,mathjs精度还是有误差的
  • add 加
    add(x, y)
  • subtract 减
    subtract(x, y)
  • multiply 乘
    multiply(x, y)
  • divide 除
    divide(x, y)
  • chain 链式操作调用
    chain(5).add(2).subtract(1).done() // 5 + 2 - 1
    除了 done() 也可使用 toString() valueOf() 拿到结果
  • evaluate 直接书写 运算表达式就能运算
    evaluate(‘5 + 2 - 1’)
import {create, all} from 'mathjs';
const math = create(all, {
    number: 'BigNumber', // 识别 浮点数进行计算,但是作用有限,有些方法依然不受此配置影响
});
const {format, bignumber, add, subtract, multiply, divide} = math;
export default {
    fourOpera(type: 'add'|'subtract'|'multiply'|'divide', ...rest: number[]) {
        let opear = add;
        switch (type) {
            case 'add': // 加
                opear = add;
                break;
            case 'subtract': // 减
                opear = subtract;
                break;
            case 'multiply': // 乘
                opear = multiply;
                break;
            case 'divide': // 除
                opear = divide;
                break;
        }
        return rest.reduce((total, item) => +format(opear(bignumber(total), bignumber(item))));
    },
};
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值