currency.js -用于处理货币值的小型轻量级 JavaScript 库(也可以处理数值计算精度问题等)

前端技术:vue2.0

 这个插件的大小只有1.14kb,  非常轻量化可以用来处理小数数值加减乘除的精度问题

0.1+0.2=?   正常逻辑下 ,结果应该是0.3,我们来看一下控制台的结果输出!

结果却是:0.30000000000000004

这就是小数的计算精度问题, 在小数计算中我们会经常遇到类似的问题,非常的影响计算结果

下面就要来介绍这款插件了。

安装        

官方地址icon-default.png?t=M85Bhttps://currency.js.org/

npm安装:

npm install --save currency.js

yarn安装:

yarn add currency.js

全局挂载方法

 在main.js文件中引入全局挂载方法,后面我们在使用过程中就不需要再次手动引入啦!

// 货币的计算方法
import currency from 'currency.js'

// 全局方法挂载
Vue.prototype.currency = currency

使用它:

<template>
  <div id="app">
    <p>{{result}}</p>
    <button @click="add">添加(0.11)</button>
  </div>
</template>

<script>

export default {
  name: 'App',
  components: {
  },
  data: () => {
    return {
      result: 20.12,
    }
  },
  created() {
  },
  methods: {
    add() {
      //正常添加   使用请注释掉一个区分效果
      this.result += 0.11
      //使用currency添加
      this.result = this.currency(this.result).add(0.11)
    }
  }
}
</script>

<style>
p {
  padding: 20px;
  margin: 20px;
  background-color: #ccc;
  border-radius: 5px;
}
</style>

 正常添加:会出现精度问题

 

使用currency添加

 

上面div标签中没有用到this是因为this可以省略不写,在js中  this指向vue实例,因为已经在vue实例上挂在了currency方法,所以可以直接通过this调用它。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
function Currency:setLastAddSkillPoint(val) m_currency.m_iLastAutoAddSkillPointTime = val end function Currency:getLastAddSkillPoint() return m_currency.m_iLastAutoAddSkillPointTime end function Currency:addLastAddSkillPoint(val) m_currency.m_iLastAutoAddSkillPointTime = m_currency.m_iLastAutoAddSkillPointTime + val end function Currency:getYuxi() return m_currency.m_iYuxi end function Currency:addYuxi(val) m_currency.m_iYuxi = m_currency.m_iYuxi + val end function Currency:getUniversal() return m_currency.m_iUniversal end function Currency:addUniversal(val) m_currency.m_iUniversal = m_currency.m_iUniversal + val end function Currency:setGuildCoin(val) m_currency.m_iGuildCoin = val end function Currency:getGuildCoin() return m_currency.m_iGuildCoin end function Currency:addGuildCoin(val) m_currency.m_iGuildCoin = m_currency.m_iGuildCoin + val end --TacticsCoin-- function Currency:setTacticsCoin(val) m_currency.m_iTacticsCoin = val end function Currency:getTacticsCoin() return m_currency.m_iTacticsCoin end function Currency:addTacticsCoin(val) m_currency.m_iTacticsCoin = m_currency.m_iTacticsCoin + val end --全民战役-- function Currency:setWarContribution(val) m_currency.m_iWarContribution = val end function Currency:getWarContribution() return m_currency.m_iWarContribution end function Currency:addWarContribution(val) m_currency.m_iWarContribution = m_currency.m_iWarContribution + val end function Currency:setMilitaryRank(val) m_currency.m_iMilitaryRank = val end function Currency:getMilitaryRank() return m_currency.m_iMilitaryRank end 翻译成TS
05-27
抱歉,由于您提供的是Lua代码,我无法为您直接翻译成TS。但是,您可以根据Lua代码手动将其转换为TS代码,例如: ``` interface Currency { m_iLastAutoAddSkillPointTime: number; m_iYuxi: number; m_iUniversal: number; m_iGuildCoin: number; m_iTacticsCoin: number; m_iWarContribution: number; m_iMilitaryRank: number; } function setLastAddSkillPoint(this: Currency, val: number): void { this.m_iLastAutoAddSkillPointTime = val; } function getLastAddSkillPoint(this: Currency): number { return this.m_iLastAutoAddSkillPointTime; } function addLastAddSkillPoint(this: Currency, val: number): void { this.m_iLastAutoAddSkillPointTime += val; } function getYuxi(this: Currency): number { return this.m_iYuxi; } function addYuxi(this: Currency, val: number): void { this.m_iYuxi += val; } function getUniversal(this: Currency): number { return this.m_iUniversal; } function addUniversal(this: Currency, val: number): void { this.m_iUniversal += val; } function setGuildCoin(this: Currency, val: number): void { this.m_iGuildCoin = val; } function getGuildCoin(this: Currency): number { return this.m_iGuildCoin; } function addGuildCoin(this: Currency, val: number): void { this.m_iGuildCoin += val; } function setTacticsCoin(this: Currency, val: number): void { this.m_iTacticsCoin = val; } function getTacticsCoin(this: Currency): number { return this.m_iTacticsCoin; } function addTacticsCoin(this: Currency, val: number): void { this.m_iTacticsCoin += val; } function setWarContribution(this: Currency, val: number): void { this.m_iWarContribution = val; } function getWarContribution(this: Currency): number { return this.m_iWarContribution; } function addWarContribution(this: Currency, val: number): void { this.m_iWarContribution += val; } function setMilitaryRank(this: Currency, val: number): void { this.m_iMilitaryRank = val; } function getMilitaryRank(this: Currency): number { return this.m_iMilitaryRank; } ``` 请注意,以上代码仅是一个示例,您可能需要根据您的具体情况进行适当的调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值