关于前端:千分位处理函数超详细注释

千分位处理函数,只解决小数点右边的数字
如:12345.6789 解决为12,345.6789
若也要解决小数点左边的数字,这个办法也能够,只须要将下文的str2执行一次本办法,而后拼接后果即可。
心愿能帮到你。

function thousandth (num) {
  let str = num.toString() // 数字转字符串
  let str2 = null
  // 如果带小数点
  if (str.indexOf('.') !== -1) { // 带小数点只须要解决小数点右边的
    const strArr = str.split('.') // 依据小数点切割字符串
    str = strArr[0]// 小数点右边
    str2 = strArr[1]// 小数点左边
    //如12345.678  str=12345,str2=678
  }
  let result = ''// 后果
  while (str.length > 3) { // while循环 字符串长度大于3就得增加千分位
    // 切割法 ,从后往前切割字符串 ⬇️
    result = ',' + str.slice(str.length - 3, str.length) + result 
    // 切割str最初三位,用逗号拼接 比方12345 切割为 ,345
    // 用result接管,并拼接上一次循环失去的result
    str = str.slice(0, str.length - 3) // str字符串剥离下面切割的后三位,比方 12345 剥离成 12
  }

  if (str.length <= 3 && str.length > 0) {
  // 长度小于等于3 且长度大于0,间接拼接到result
  // 为什么能够等于3 因为下面result 拼接时候在后面带上了‘,’
  // 相当于123456 上一步解决完之后 result=',456' str='123'
    result = str + result
  }
  // 最初判断是否带小数点(str2是小数点左边的数字)
  // 如果带了小数点就拼接小数点左边的str2 ⬇️
  str2 ? result = result + '.' + str2 : ''
  return result
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理