我们都知道在我们进行浮点运算的时候经常遇到的一个麻烦事就是精度问题,在js里面,0.1+0.2等于0.30000000000000004。为了解决这种精度丢失的问题我们可以先给每个小数乘以100转为正数,在最后除以100还原为浮点数这样也行。不过我们也可以借助big.js来解决任意精度的大十进制算术运算。

首先安装big.js

  • 可以直接导入

    <script src='https://cdn.jsdelivr.net/npm/big.js@6.0.0/big.min.js'></script>
  • 也可以通过npm安装

    npm install big.js
    import Big from 'big.js';
  • 也可以下载后导入

    https://github.com/MikeMcl/big.js

计算

  • 加法plus

    0.1 + 0.2                                     // 0.30000000000000004
    const x = new Big (0.1);
    const y = x.plus (0.2);                      // 0.3
  • 减法minus

    0.3 - 0.1                                     // 0.19999999999999998   
    const x = new Big (0.3);
    const y = x.minus (0.1)                      // 0.2
  • 乘法times

    0.6 * 3                    // 1.7999999999999998
    x = new Big(0.6)
    y = x.times(3)             // '1.8'
  • 除法div

    x = new Big(0.9)
    y = new Big(0.1)
    x.div(y)                   // 9

    其他用法

  • 数字处理

    x = new Big(255.5)
    x.toExponential(5)                     // "2.55500e+2"
    x.toFixed(5)                           // "255.50000"
    x.toPrecision(5)                       // "255.50"
  • 判断是否相等

    Big(-0).eq(0)              // true  ( -0 === 0 )
Last modification:August 10, 2021
If you think my article is useful to you, please feel free to appreciate