/**
* 格式化金额:逗号分隔三位且保留两位小数
*/
Vue.filter('amountFormat',(amount) => {
if(!amount) {
return "-"
}
//强制保留两位小数
let f = parseFloat(amount);
if (isNaN(f)) return false;
f = Math.round(amount * 100) / 100;
let s = f.toString();
let rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length < (rs + 1) + 2) {
s += '0';
}
//每三位用一个逗号隔开
let leftNum=s.split(".")[0];
let rightNum="."+s.split(".")[1];
let result;
//定义数组记录截取后的价格
let resultArray=new Array();
if(leftNum.length>3){
let i=true;
while (i){
resultArray.push(leftNum.slice(-3));
leftNum=leftNum.slice(0,leftNum.length-3);
if(leftNum.length<4){
i=false;
}
}
//由于从后向前截取,所以从最后一个开始遍历并存到一个新的数组,顺序调换
let sortArray=new Array();
for(let i=resultArray.length-1;i>=0;i--){
sortArray.push(resultArray[i]);
}
result=leftNum+","+sortArray.join(",")+rightNum;
}else {
result=s;
}
return result;
});
格式化金额:逗号分隔三位且保留两位小数
最新推荐文章于 2023-05-25 15:57:48 发布
这是一个Vue.js过滤器方法,用于将金额格式化为带有逗号分隔的数值,并保留两位小数。如果输入值为空,则返回"-", 否则通过 parseFloat 和 Math.round 进行数值处理,确保精确到两位小数。接着,通过字符串操作在适当位置插入逗号,实现每三位一隔断的效果。最后,返回格式化后的金额字符串。
摘要由CSDN通过智能技术生成