美文网首页前端开发
input输入框处理金额的方法,银行家舍入法

input输入框处理金额的方法,银行家舍入法

作者: 相听不厌 | 来源:发表于2019-10-05 12:29 被阅读0次
 //监听额度输入事件
            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)
            }

银行家舍入法

四舍六入五考虑,五后非空就进一,五后为空看奇偶,五前为偶应舍去,五前为奇要进一

相关文章

网友评论

    本文标题:input输入框处理金额的方法,银行家舍入法

    本文链接:https://www.haomeiwen.com/subject/tcwepctx.html