其他分享
首页 > 其他分享> > 【js】 操作小数的时候精度问题

【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));
}

 

相关资料:

 

搜索

复制

<iframe height="240" width="320"></iframe>

标签:BigNumber,bignumber,let,js,toNumber,new,精度,小数
来源: https://www.cnblogs.com/websmile/p/16283885.html