VUE金额千分位处理(含负数)

// main.js


Vue.filter('NumFormat', function(value) {

  if(!value) return '0.00';

  /*原来用的是Number(value).toFixed(0),这样取整时有问题,例如0.51取整之后为1,感谢Nils指正*/

  var intPart =  Number(value)|0; //获取整数部分

  var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,'); //将整数部分逢三一断

  var floatPart = ".00"; //预定义小数部分

  // console.log(888,value)

  // console.log(888,typeof(value))

  var value2Array = value.toString().split(".");

  var isNegtiveNo = ''

  if(intPartFormat == 0){

    if(value.toString().indexOf('-') != 1) isNegtiveNo = '-' //修复小于0负数丢失的问题

  }

  //=2表示数据有小数位

  if(value2Array.length == 2) {

    floatPart = value2Array[1].toString(); //拿到小数部分

    if(floatPart.length == 1) { //补0,实际上用不着

      return isNegtiveNo + intPartFormat + "." + floatPart + '0';

    } else {

      return isNegtiveNo + intPartFormat + "." + floatPart;

    }

  } else {

    return isNegtiveNo + intPartFormat + floatPart;

  }

})



使用

{{transAmount|NumFormat}}

你可能感兴趣的:(VUE金额千分位处理(含负数))