金额转换成千分位表示(支持负数)

function money2Thousand(s, n) {
  n = n >= 0 && n <= 20 ? n : 2;
  s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
  var l = s.split(".")[0].split("").reverse(),
      r = s.split(".")[1];
  r = r == null ? "" : "." + r;
  var t = "";
  if (l[l.length - 1] === '-') {//负数不需要分隔号,
    for (var i = 0; i < l.length; i++) {
      if (l[i]==='-') {
        t += l[i]+"";
        continue;
      }
      //不是数组的倒数第二个元素才加"," ["0", "4", "5", "-"]
      t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length-1 ? "," : "");
    }
  } else {
    for (var i = 0; i < l.length; i++) {
      t += l[i] + ((i + 1) % 3 == 0 && i + 1 != l.length ? "," : "");
    }
  }
  return ( t.split("").reverse().join("") + r);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容