亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果一千或更多,則將數字格式化為2.5K,否則為900

如果一千或更多,則將數字格式化為2.5K,否則為900

Smart貓小萌 2019-12-13 09:22:13
我需要以等于1K或1K,1.1K,1.2K,1.9K等的1K格式顯示貨幣值,如果不是偶數,則為1000,否則顯示正常的500、100、250等,使用javascript格式化數字?
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

聽起來這應該適合您:


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.2k

console.log(kFormatter(-1200)); // -1.2k

console.log(kFormatter(900)); // 900

console.log(kFormatter(-900)); // -900


查看完整回答
反對 回復 2019-12-13
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

這是一個避免所有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;

}


查看完整回答
反對 回復 2019-12-13
  • 3 回答
  • 0 關注
  • 575 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號