前言
网上排的靠前的答案都写的挺复杂的复制起来都不好复制,于是就自己写了一个格式化金额函数,并且自带保留小数点后两位功能,不足后两位会自动补全。代码如下文所示。
实现逻辑
/**
* 金额千分位分割格式函数
* @param {Number|String} vlaue 需要转化的金额字符串
/
function formatAmount(value) {//传入值不是数字直接返回0if (!value) return '0.00'const values = value.toString().split('.')// 整数部分let integerNum = values[0]// 小数部分let decimalNum = values[1] ? values[1] : '00'decimalNum = decimalNum.length === 1 ? decimalNum + 0 : decimalNum//传入值小于1000不切割if (integerNum < 1000) {return `${integerNum}.${decimalNum}`}const list = []while (integerNum.length > 3) {// 倒序切割list.unshift(integerNum.slice(-3))integerNum = integerNum.slice(0, -3)}// 处理剩余长度list.unshift(integerNum)return `${list.join(',')}.${decimalNum}`}
编写完成后试验下执行结果:
以上就是金额千分位格式化的逻辑,你也可以根据你的需求进一步扩展或是删减函数逻辑