常用vue过滤器设置金额,保留小数位2位,如果是整数则没有小数;

//html:
{{total_maney|curreny}}

//js:
 filters:{
        curreny:function(data){
            data = Number(data).toFixed(2);
            if(data==parseInt(data)){
                data = parseInt(data);
            }
            return data;
        }
    },

方法二:vue 监听处理输入数据保留小数位2位,好用封装;

vue html使用:

<van-field
   v-model.number="parems.paymoney"
   center
   clearable
   label="付款金额(¥)"
   placeholder="请输入金额,如:0.00"
>
</van-field>

vue js代码:

 watch: {
    //方法一:
    'parems.paymoney':function (newVal,oldVal) {
            if(newVal<0){
                this.$toast('输入金额不能为负数!');
                this.parems.paymoney='';
            }
            // 解决数字键盘可以输入输入多个小数点问题
            if(newVal==='' && oldVal.toString().indexOf('.')>0){
                this.parems.paymoney = oldVal;
                return ;
            }
            // 保留两位小数
            if(newVal){
                newVal = newVal.toString();
                var pointIndex =  newVal.indexOf('.');
                if(pointIndex>0 && (newVal.length - pointIndex)>3){
                    this.parems.paymoney = oldVal;
                    return ;
                }
            }
            // 最大值
            if(newVal>9999999999){
                this.parems.paymoney = oldVal;
                this.$toast('输入数值太大!');
                return ;
            }

        }
    //方法二:
   'parems.paymoney':function (newVal,oldVal) {
            if(newVal<0) {
                this.$toast('输入金额不能为负数!');
                this.parems.paymoney = '';
            }
            // 解决数字键盘可以输入输入多个小数点问题
            this.parems.paymoney = newVal.toString().match(/^\d*(\.?\d{0,2})/g)[0];
            // 最大值
            if(newVal>9999999999){
                this.parems.paymoney = oldVal;
                this.$toast('输入数值太大!');
                return ;
            }

        }
}

 

Logo

前往低代码交流专区

更多推荐