如果一千或更多,则将数字格式化为2.5K,否则为900

我需要以等于1K或1K,1.1K,1.2K,1.9K等的1K格式显示货币值,如果不是偶数,则为1000,否则显示正常的500、100、250等,使用javascript格式化数字?



Smart猫小萌
浏览 543回答 3
3回答

幕布斯7119047

听起来这应该适合您:function kFormatter(num) {    return Math.abs(num) > 999 ? Math.sign(num)*((Math.abs(num)/1000).toFixed(1)) + 'k' : Math.sign(num)*Math.abs(num)}    console.log(kFormatter(1200)); // 1.2kconsole.log(kFormatter(-1200)); // -1.2kconsole.log(kFormatter(900)); // 900console.log(kFormatter(-900)); // -900

犯罪嫌疑人X

这是一个避免所有if语句(使用的功能Math)的简单解决方案。var SI_SYMBOL = ["", "k", "M", "G", "T", "P", "E"];function abbreviateNumber(number){    // what tier? (determines SI symbol)    var tier = Math.log10(number) / 3 | 0;    // if zero, we don't need a suffix    if(tier == 0) return number;    // get suffix and determine scale    var suffix = SI_SYMBOL[tier];    var scale = Math.pow(10, tier * 3);    // scale the number    var scaled = number / scale;    // format number and add suffix    return scaled.toFixed(1) + suffix;}
打开App,查看更多内容
随时随地看视频慕课网APP