利用JS把一个过千的整数处理成以k结尾

看到很多网站都有像粉丝数、收藏数、点赞数等数据,他们展示的时候如果数目过大常常以k结尾,如15.8k而不是15800

那么我试着利用js怎么将数据处理成这样

打算实现的效果是:

  1. 若数字小于4位数,则不改变,直接返回
  2. 4位数以上的数字小数点向前三位,且保留一位小数
  3. 若是7021k这样的数则显示7k而不是7.0k
  4. 若是7260这样的数则十位四舍五入显示7.3k   

下面是代码:

// 随机制造一个五位数 
let num = `${Math.round(Math.random()*99999)}`
console.log('随机制造的数:',num)

// 传入一个整数参数,函数处理成多少k的形式,且保留一位小数点
function change(num){
  // 若数字是四位数以下没到千位的,就直接返回
  if(num.length<4) return num 
  else{
    // 获取倒数第四个数及之前/去掉后三个数/千位数之前
    let num1 = num.substring(0,num.length-3)
    // 获取百位数
    let num2 = num.substring(num.length-3,num.length-2)
    // 获取十位数
    let num3 = num.substring(num.length-2,num.length-1)
    // 设置一个小数点
    let point = '.'
    // 若十位数大于5了,要进一位给百位数
    if(num3>=5){
      // 若百位数恰好等于9,则要进位,百位就成了0,千位数之前的加1
      if(num2 == 9){
        num2 = 0 
        num1 = (++num1)+'' 
      }else{
        // 若不等于9就百位数加1即可
        num2 = ++num2
      }
    }
    // 完事后若百位数是0的话需要省略掉百位,及小数点
    if(num2==0){
      num2 = ''
      point = ''
    }
    // 最后拼接千位数之前、小数点、百位数、和一个k
    return num1.concat(point,num2,'k')
  }
}
console.log('处理后得到:',change(num))

看看效果:

 哇塞,实现了想要的效果~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值