//监听额度输入事件
limitInputChange(e) {
//必须保证第一个为数字而不是'.'
e = e.replace(/^\./g, "");
//保证只有出现一个'.'而没有多个'.'
e = e.replace(/\.{2,}/g, ".");
//保证.只出现一次','而不能出现两次以上
e = e.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
//如果第一个数字为0,后面再输入0时,只按照一个0处理
if (e === '00') e = '0'
//转为数组
let s = e.split('')
if (s.length === 0) return
//获取最后输入的值
let a = s[s.length - 1].toString()
let isInt = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.']
//判断数组中是否存在输入的值,不存在返回-1,并删除最后一个数组
if (isInt.indexOf(a) === -1) {
s.length = s.length - 1
}
//数组转换成字符串并赋值
this.shopForm.limit = s.join('')
},
//失去焦点时,格式化小数点两位
fomatLimit(){
//如果为空,则赋值为0
if (this.shopForm.limit === '')this.shopForm.limit = '0'
//保留小数点后两位,银行家舍入法
this.shopForm.limit = parseFloat(this.shopForm.limit).toFixed(2)
}
银行家舍入法
四舍六入五考虑,五后非空就进一,五后为空看奇偶,五前为偶应舍去,五前为奇要进一
网友评论