VUE金额千分位处理(含负数)
发布网友
发布时间:2022-12-26 09:19
我来回答
共1个回答
热心网友
时间:2023-10-15 08:29
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 }}