【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