为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法用js缩短一个数字?

有没有办法用js缩短一个数字?

慕丝7291255 2023-09-28 17:15:44
有什么办法可以让数字变短吗?例如,1.000.000 变为 1M、1.000 变为 1k、10.000 变为 10k,依此类推
查看完整描述

3 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

尝试这样的事情:


函数 fnum(x) { if(isNaN(x)) 返回 x;


if(x < 9999) {

    return x;

}


if(x < 1000000) {

    return Math.round(x/1000) + "K";

}

if( x < 10000000) {

    return (x/1000000).toFixed(2) + "M";

}


if(x < 1000000000) {

    return Math.round((x/1000000)) + "M";

}


if(x < 1000000000000) {

    return Math.round((x/1000000000)) + "B";

}


return "1T+";

}


查看完整回答
反对 回复 2023-09-28
?
三国纷争

TA贡献1804条经验 获得超7个赞

你可以尝试这样的事情:


function shortenNum(num, decimalDigits) {

  if (isNaN(num)) {

    console.log(`${num} is not a number`)

    return false;

  }


  const magnitudes = {

    none: 1,

    k: 1000,

    M: 1000000,

    G: 1000000000,

    T: 1000000000000,

    P: 1000000000000000,

    E: 1000000000000000000,

    Z: 1000000000000000000000,

    Y: 1000000000000000000000000

  };


  const suffix = String(Math.abs(num)).length <= 3 ?

    'none' :

    Object.keys(magnitudes)[Math.floor(String(Math.abs(num)).length / 3)];


  let shortenedNum

  if (decimalDigits && !isNaN(decimalDigits)) {

    const forRounding = Math.pow(10, decimalDigits)

    shortenedNum = Math.round((num / magnitudes[suffix]) * forRounding) / forRounding

  } else {

    shortenedNum = num / magnitudes[suffix];

  }


  return String(shortenedNum) + (suffix !== 'none' && suffix || '');

}


// tests

console.log('1:', shortenNum(1));

console.log('12:', shortenNum(12));

console.log('198:', shortenNum(198));

console.log('1278:', shortenNum(1278));

console.log('1348753:', shortenNum(1348753));

console.log('7594119820:', shortenNum(7594119820));

console.log('7594119820 (rounded to 3 decimals):', shortenNum(7594119820, 3));

console.log('7594119820 (invalid rounding):', shortenNum(7594119820, 'foo'));

console.log('153000000:', shortenNum(153000000));

console.log('foo:', shortenNum('foo'));

console.log('-15467:', shortenNum(-15467));

console.log('0:', shortenNum(0));

console.log('-0:', shortenNum(-0));


查看完整回答
反对 回复 2023-09-28
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

如果你使用的是js库或者框架(比如Angular、React),可以使用这个

数字缩写


查看完整回答
反对 回复 2023-09-28
  • 3 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信