数据格式化数字货币加逗号隔开
Posted 笑窝会发光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据格式化数字货币加逗号隔开相关的知识,希望对你有一定的参考价值。
不辜负曾经那份热爱
工作中经常遇到数据格式化处理,
例如:12345.89转为12,345.89;-12345.89转为-12,345.89;
避免每次都需要重新测试重新写,在此做一下整理,方便后期查找。
同时,也分享给有需要的小伙伴们❤
思路
1. 数字先转为字符串,并通过"."分割成整数和小数两部分;
2. 整数部分处理:(循环操作) 截取整数后3位,前边加",“拼接,剩下部分(去掉刚刚截掉的部分)再截取后3位,前边加”,"拼接… …直到剩余部分长度小于等于3,结束循环,并拼接剩余部分;
3. 小数部分保留位数及不够位补零处理;
4. 考虑负数情况: 判断有"-",先用变量标记此为负数,再做处理去掉负号,当数据格式处理完,最后加上负号;
代码
// 货币加逗号
function Moneysettle(num) {
let states = false;
let ruzlut = '';
if (num === '') {
return '-';
}
// 如果是负数做的处理
num = num + '';
if (num && num.indexOf('-') > -1) {
num = num.replace('-', '');
states = true;
}
num = num + '';
const numStr = num.split('.'); // 先转为字符串,再分开整数和小数部分
let numInt = numStr[0]; // 整数部分
let numDec = numStr.length > 1 ? '.' + numStr[1] : '.'; // 小数部分,只有原数字存在小数点的时候,分割完长度才会大于1
while (3 - numDec.length) numDec += '0'; // 补0,只有整数的补2个,有一位小数的补1个
let resultInt = ''; // 存储整数部分处理结果
while (numInt.length > 3) {
// 当剩余整数部分长度大于3时继续处理
resultInt = ',' + numInt.slice(-3) + resultInt; // 把后三位截出来,和处理结果拼在一起,前面加逗号
numInt = numInt.slice(0, -3); // 剩下的部分是除去刚刚截掉的3位的部分
}
ruzlut = numInt + resultInt + numDec;
// 如果是负数就把负号加回来
if (states) {
ruzlut = '-' + ruzlut;
}
return ruzlut; // 结果是“剩余的不足3位的整数”+“处理好的整数结果”+“小数部分”
}
非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!
以上是关于数据格式化数字货币加逗号隔开的主要内容,如果未能解决你的问题,请参考以下文章
js 金额用,隔开(千分位加逗号) 例如 100,222.123