Convert long number into abbreviated string in JavaScript, with a special shortness requirement

前端 未结 16 2489
名媛妹妹
名媛妹妹 2020-11-30 22:33

In JavaScript, how would one write a function that converts a given [edit: positive integer] number (below 100 billion) into a 3-letter abbreviation -- where 0-9 an

16条回答
  •  天命终不由人
    2020-11-30 23:00

    I'm using this function to get these values.

    function Converter(number, fraction) {
        let ranges = [
          { divider: 1, suffix: '' },
          { divider: 1e3, suffix: 'K' },
          { divider: 1e6, suffix: 'M' },
          { divider: 1e9, suffix: 'G' },
          { divider: 1e12, suffix: 'T' },
          { divider: 1e15, suffix: 'P' },
          { divider: 1e18, suffix: 'E' },
        ]
        //find index based on number of zeros
        let index = (Math.abs(number).toString().length / 3).toFixed(0)
        return (number / ranges[index].divider).toFixed(fraction) + ranges[index].suffix
    }
    

    Each 3 digits has different suffix, that's what i'm trying to find firstly.

    So, remove negative symbol if exists, then find how many 3 digits in this number.

    after that find appropriate suffix based on previous calculation added to divided number.

    Converter(1500, 1)
    

    Will return:

    1.5K
    

提交回复
热议问题