• 【js】 操作小数的时候精度问题


     解决方案一:

     解决方案二:

    引入外部bignumber.js

    应用

    1、安装和引用

    // Node.js
    
    npm install bignumber.js
    
    const BigNumber = require('bignumber.js');
    
    // ES6 module
    import BigNumber from "./bignumber.js"

    2、基本的加减乘除

    const a = 9.99;
    const b = 8.03;
    
    //
    let c = new BigNumber(a).plus(b).toNumber();
    
    //
    let d = new BigNumber(a).minus(b).toNumber();
    
    //
    let e = new BigNumber(a).multipliedBy(b).toNumber();
    
    //
    let f = new BigNumber(a).dividedBy(b).toNumber();

    扩展:

    理论上用有限的空间来存储无限的小数是不可能保证精确的,但我们可以处理一下得到我们期望的结果

    当你拿到 1.4000000000000001 这样的数据要展示时,建议使用 toPrecision 凑整并 parseFloat 转成数字后再显示,如下:

    parseFloat(1.4000000000000001.toPrecision(12)) === 1.4  // True
    

    封装成方法就是:

    function strip(num, precision = 12) {
      return +parseFloat(num.toPrecision(precision));
    }

    相关资料:

  • 相关阅读:
    2019.8.15刷题统计
    2019.8.12刷题统计
    2019.8.11刷题统计
    2019.8.10刷题统计
    2019.8.9刷题统计
    2019.8.8刷题统计
    2019.8.7刷题统计
    2019.8.6刷题统计
    xuezhan.org 6.28
    xuezhan.org 6.27
  • 原文地址:https://www.cnblogs.com/websmile/p/16283885.html
Copyright © 2020-2023  润新知