很多项目都会涉及到计算,比如对账、财务等,对数据的计算要求比较高,先简单看个例子:

  • 两 个 小 数 相 加 \color{#ed1941}{两个小数相加}
    在这里插入图片描述

    正常来说不应该是0.3吗?为什么会有这么多位数?

  • 两 数 相 减 \color{#ed1941}{两数相减}
    在这里插入图片描述

    不应该是0.2吗?

从以上例子来看计算的结果并不是很准确,所以可以用bigNumber来解决以上问题。

bigNumber

BigNumber.js是一个用于精度计算的js库。

API

地址:https://mikemcl.github.io/bignumber.js/

安装
npm install bignumber.js --S
使用
  • 引入

    import { BigNumber } from 'bignumber.js';
    
  • 例子

    • 加 \color{#009ad6}{加}

      add(a, b) {
        a = BigNumber(a);
        b = BigNumber(b);
        return a.plus(b).toNumber();   //结果需要用toNumber转为普通数字
      }
      //调用
      add(0.1,0.2)    //0.3
      

      在这里插入图片描述

    • 减 \color{#009ad6}{减}

      minus(a, b) {
        a = BigNumber(a);
        b = BigNumber(b);
        return a.minus(b).toNumber();
      },
      
      minus(0.3,0.1);     //0.2
      
    • 乘 \color{#009ad6}{乘}

      mutiply(a, b) {
        a = BigNumber(a);
        b = BigNumber(b);
        return a.multipliedBy(b).toNumber();
      }
      
      mutiply(3,0.6);   //1.8
      

      在这里插入图片描述

    • 除 \color{#009ad6}{除}

      devide(a, b) {
        a = BigNumber(a);
        b = BigNumber(b);
        return a.dividedBy(b).toNumber();
      }
      devide(355,113)  //  3.1415929203539825
      
    • 多 个 数 求 和 \color{#145b7d}{多个数求和}

      multiAdd(...params) {
        let data = BigNumber(0);
        for (let index = 0; index < params.length; index++) {
          const element = BigNumber(params[index]);
          data = data.plus(element);
        }
        return data.toNumber();
      }
      
      multiAdd(1,2,3,4,5);   //15
      
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐