当前位置: 首页 > wzjs >正文

昌吉州建设局网站安卓开发简单网站开发代码下载

昌吉州建设局网站,安卓开发简单网站开发代码下载,桂林森禾医药有限公司,网站的设计分析vue项目如何解决金额计算超过15出现精度丢失问题 (1)使用big.js解决 npm i big.js示例 应收金额 收款金额 不能大于累计实收金额 金额15位 小数点2位,出现精度丢失 500000000000000 0.02 !500000000000000.02 使用big.js的几…

vue项目如何解决金额计算超过15出现精度丢失问题

(1)使用big.js解决

npm i big.js

示例

应收金额 + 收款金额 不能大于累计实收金额
金额15位 + 小数点2位,出现精度丢失
500000000000000 + 0.02 !=500000000000000.02

使用big.js的几个方法来转换解决

<template><h-bill-container:content="content":router="backUrl":billHead="billHead"v-loading="mainLoading"><el-collapse v-model="collapseName" class="collase-box" id="collse"><el-form:model="model"ref="contractRef"label-width="150px":rules="rules"class="inspect-form"><el-collapse-item name="3" title="收款信息" id="3"><el-row :gutter="20"><el-col :lg="8" :md="8"><el-form-item label="应收金额:" :prop="model.receiveType == 0 ? '' : 'receivableAmount'"><el-inputclearable:disabled="model.receiveType && model.receiveType == 1 ? false : true"v-model="model.receivableAmount"placeholder="自动带出"><span slot="append"></span></el-input></el-form-item></el-col><el-col :lg="8" :md="8"><el-form-item label="累计实收金额:"><el-inputv-model="model.receiveAmountHis"disabledplaceholder="自动带出"><span slot="append"></span></el-input></el-form-item></el-col></el-row></el-collapse-item><el-collapse-item name="4" title="收款流水信息" id="4"><el-row :gutter="20"><div class="inspect-table"><el-table class="table-supplier" :data="model.detailList" border:header-cell-style="{background:'#F5F7FA',color:'#333333', height: '45px',textAlign: 'center'}"><el-table-column label="收款金额(元)" min-width="40"><template slot="header"><span class="star">*</span><span>收款金额()</span></template><template slot-scope="scope"><el-form-itemlabel-width="0px"class="isError":prop="'detailList.' + scope.$index + '.receiveAmount'":rules="rules.receiveAmount"><el-inputv-model="scope.row.receiveAmount"placeholder="请输入金额"class="select-width"maxlength="15"clearable></el-input></el-form-item></template></el-table-column></el-table></div></el-row></el-collapse-item></el-form></el-collapse></h-bill-container>
</template>
import Big from 'big.js';export default {components: {AnchorPoint,proSelect,projectSelect,},data() {return {model: {approvalAmount:'',//批复金额receivableAmount: null, //应收金额receiveAmountHis: "", //累计实收金额},oldModel: {},rules: {receivableAmount: [{ required: true, validator: this.checkReceivableAmount}],receiveAmount: [{ required: true, validator: this.checkReceiveMoney, trigger: ['blur','change'] }],},};},methods: {//校验应收金额checkReceivableAmount(rule, value, callback) {var reg = /^-?[0-9]+(\.[0-9]{1,2})?$/;const num1 = Big(Number(this.model.receiveAmountHis))const num2 = isNaN(Number(this.model.detailList[0].receiveAmount)) ? undefined :  Big(Number(this.model.detailList[0].receiveAmount))const result = isNaN(Number(num2)) ? undefined : num1.plus(Number(num2)).toString();//   const num2 = Big(Number(this.model.detailList[0].receiveAmount))//   const result =  num1.plus(num2).toString();if (value === "" || value == undefined || value == null) {callback(new Error(`请输入应收金额`));return;} else if (!reg.test(value)) {callback(new Error(`只能输入正数,负数或0,且最多保留两位小数`));return;} else if(this.model.detailList[0].receiveAmount) {if(new Big(value).lt(new Big(result))) {callback(new Error(`收款金额与累计实收金额的总和不能大于应收金额`));return;}else {callback();return;}}else {callback();}},//校验收款金额checkReceiveMoney(rule, value, callback) {var reg = /^-?[0-9]+(\.[0-9]{1,2})?$/;const num1 = Big(Number(this.model.receiveAmountHis))//累计实收金额const num2 = Big(Number(this.model.receivableAmount))//应收金额if(isNaN(Number(value))) {this.resultStatus = false}else {this.result = num1.plus(Number(value)).toString();this.resultStatus = true}var reg = /^-?[0-9]+(\.[0-9]{1,2})?$/;if (value === "" || value == undefined || value == null) {callback(new Error(`请输入收款金额`));return;} else if (!reg.test(value)) {callback(new Error(`收款金额只能输入正数,负数及0,且最多保留两位小数`));return;}else if(this.resultStatus){if(num2 > 0 && new Big(num2).lt(new Big(this.result))) {callback(new Error(`收款金额与累计实收金额的总和不能大于应收金额`));return;}else if(num2 < 0 && new Big(this.result).lt(new Big(num2))) {callback(new Error(`收款金额与累计实收金额的总和不能小于应收金额`));return;}else {callback();return;}} else {callback();return;}},},
};
</script>
http://www.dtcms.com/wzjs/839491.html

相关文章:

  • 大连做网站 智域制作网站的费用
  • 做的最好的理财网站wordpress和worldpress
  • 无锡做网站f7wl网站的域名空间
  • 宏润建设集团股份有限公司网站html5 公司网站
  • 济南网站建设那家好外贸网站
  • 教学网站开发应用方案暗红色网站
  • 风景网站模板网站开发安全
  • 培训行业门户网站建设方案最简单的安卓开发工具
  • 门户网站管理系统精美ppt模板下载免费
  • 网站降权该怎么做asp网站开发 基础
  • 上传网站图片不显示旅游电商网站建设方案模板
  • 建设工程自学网站公司起名打分最准的免费网站
  • 广州建网站培训怎么买网站
  • html5 网站开发 适配网络文章发布平台
  • 正规的佛山网站建设价格wordpress域名替换
  • 网站推广排名优化商业网站开发文档
  • 谢岗东莞网站建设wordpress 左侧菜单
  • 邯郸营销网站建设流媒体网站开发
  • 佛山移动网站设计网站建设基本流程图片
  • 网站建设需要哪些工具与知识ui设计是学什么的
  • 网站开发入门培训机构国内精自线一二区网页版
  • 开发 必知 网站冠辰网站
  • 模板王网站怎么下载不了模板网站建设的各个环节
  • 网站百度统计表格怎么做wordpress 多余p标签
  • 羊毛网站建设视频网站全是乱码
  • 微信授权登录网站退出怎么做网站建设 开题报告
  • 做旅行社的都是在哪网站拿票企业网站备案策划
  • 乐陵网站优化wordpress怎么去掉
  • 做网站标志过程各大网站投稿方式
  • 网站开发后端开发住房及城乡建设部信息中心网站