js处理数字精度丢失问题

大多数同学遇到的问题—数字运算导致精度丢失。于是系统性的总结下面几种方法,希望能帮助到小伙伴。

  1. 方法1:使用 toFixed() 方法:将数字转换为固定小数位数的形式,可以控制精度。
let a = 0.1 + 0.2; // 结果为 0.3
let b = a.toFixed(2); // 结果为 "0.30"
  1. 方法2:把小数乘以倍数变成整数计算,
let a = 0.1,b=0.2; 
let c = a + b // 结果0.30000000000000004
((a*100)+(b*100))/100 //结果0.3
  1. 方法3:vue2项目使用插件number-precision,安装命令 npm install number-precision --save
    注意:此方法只适用vue2
import NP from 'number-precision'
let a=0.1,b=0.2;
NP.plus(a,b) // plus表示加法 其他运算看文档 https://www.npmjs.com/package/number-precision
  1. 方法4:使用插件decimal.js,安装命令 npm install decimal.js
import Decimal from 'decimal.js';
const a = new Decimal('1.2345');
const b = new Decimal('2.3456');

// 加法
const sum = a.add(b);
console.log(sum.toString()); // 输出 "3.5791"

// 减法
const difference = a.sub(b);
console.log(difference.toString()); // 输出 "-1.0101"

// 乘法
const product = a.mul(b);
console.log(product.toString()); // 输出 "2.9068"

// 除法
const quotient = a.div(b);
console.log(quotient.toString()); // 输出 "0.5437"

// 取模
const remainder = a.mod(b);
console.log(remainder.toString()); // 输出 "0.0101"

// 求商
const quotient2 = a.div(b, true);
console.log(quotient2.toString()); // 输出 "0.5437"
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值