• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

我的博客我做主

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

使用 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
出处:https://www.cnblogs.com/kitty-blog/
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。

posted on 2022-07-04 17:03  kitty20180903suzhou  阅读(663)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3