数据格式化数字货币加逗号隔开

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

excel中,把某一列的数字放到一个单元格中,并且用逗号隔开,请说一下具体步骤

C# 转成金额每三位逗号隔开

excel中如何将两列数字并入一列,中间用逗号隔开?

excel中如何将两列数字并入一列,中间用逗号隔开?

TP5.1 文章分类用逗号隔开,怎么查询属于多个分类的数据?