一个带着单位的数字用千位分割符处理顺带处理精度的方法

    /**
     * 精度和数字的千位分隔符处理,s是要处理的数据,n是精度,0就是整数
     */
    fmoney(s, n) {
      n = n >= 0 && n <= 20 ? n : 2;
      let unit = (s + "").replace(/[!^\d\.-]/g, "");
      s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
      var l = s.split(".")[0].split("").reverse();
      let r = "";
      if (n > 0) {
        r = s.split(".")[1];
      }
      let t = "";
      for (var i = 0; i < l.length; i++) {
        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
      }
      if (r == '') {
        return t.split("").reverse().join("") + unit ;
      }
      return t.split("").reverse().join("") + "." + r + unit;
    },

 

posted @ 2020-12-31 11:07  洛晨随风  阅读(160)  评论(0编辑  收藏  举报