Задать вопрос
@AndreyPYT
Начинающий

Как написать скрипт сокращения цифр?

Например: (1К, 100К, 200М и т.д)
  • Вопрос задан
  • 198 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Пишем собственный говнокод:

function shortNumber(val) {
  const abs = Math.abs(val);
  const prefixIndex = Math.log10(abs) / 3 | 0;
  return (
    (val < 0 ? '-' : '') +
    (Number.isFinite(val) ? Math.round(abs / (10 ** (prefixIndex * 3))) : 'inf') +
    'KMGTPEZY'.charAt(~-prefixIndex)
  );
}

shortNumber(99)       // '99'
shortNumber(1945)     // '2K'
shortNumber(-5839465) // '-6M'
shortNumber(7e10)     // '70G'
shortNumber(Infinity) // 'inf'

Или пользуемся готовым инструментом:

const { format } = Intl.NumberFormat('en-US', { notation: 'compact' });

format(423)            // '423'
format(-1111)          // '-1.1K'
format(15347832)       // '15M'
format(48237464278237) // '48T'
format(1/0)            // '∞'
Ответ написан
Комментировать
@YahorDanchanka
Frontend developer
function intToString(value) {
    var suffixes = ["", "k", "m", "b","t"];
    var suffixNum = Math.floor((""+value).length/3);
    var shortValue = parseFloat((suffixNum != 0 ? (value / Math.pow(1000,suffixNum)) : value).toPrecision(2));
    if (shortValue % 1 != 0) {
        var shortNum = shortValue.toFixed(1);
    }
    return shortValue+suffixes[suffixNum];
}
// 19k
alert( intToString(19410) )
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы