使用 decimal.js 处理 js 计算精度问题
// https://github.com/MikeMcl/decimal.js-light/ // 全局数据计算插件 防止js 计算精度问题 import {Decimal} from 'decimal.js'; // Adjust the global configuration if required (these are the defaults) Decimal.set({ precision: 20, rounding: Decimal.ROUND_HALF_UP, toExpNeg: -7, toExpPos: 21 }); // 获取乘法计算结果 const getTimesNumber = (number,timesNumber) =>{ const dnumber = new Decimal(number) const tnumber = new Decimal(timesNumber) return dnumber.times(tnumber) } // 获取除法计算结果 const getDivNumber = (number,divNumber) =>{ const dnumber = new Decimal(number) const tnumber = new Decimal(divNumber) return dnumber.div(tnumber) } export default { getTimesNumber, getDivNumber }
全局注册
app.config.globalProperties.$Decimal = Decimal
使用:
proxy.$Decimal.getTimesNumber(value , 100) //乘以 100 倍 proxy.$Decimal.getDivNumber(value , 100) //除以 100 倍
当然了上面得到的结果都是字符串你可以继续这样处理
Number(proxy.$Decimal.getTimesNumber(value , 100).toFixed(2)) // 保留两位小数并且转换成数字形式
作者:胡倩倩0903
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
posted on 2022-07-04 17:03 kitty20180903suzhou 阅读(583) 评论(0) 编辑 收藏 举报