Подтвердить что ты не робот

Сократите длинные числа, включив K/M/B/T

Я проверил Rails number_to_human, но это не совсем то, что я хочу.

Я хотел бы сократить длинные номера, не включая полное название единицы:

420 -> 420
5,680 -> 5,680
12,680 -> 12.6K
6,802,251 -> 6.80M
894,100,158 -> 894M

Как вы видите, нет конкретной точности, но больше о длине общего числа

У кого-нибудь есть хороший вспомогательный метод для этого?

4b9b3361

Ответ 1

Поместите в свой config/locales/en.yml:

en:
  number:
    human:
      decimal_units:
        format: "%n%u"
        units:
          unit: ""
          thousand: K
          million: M
          billion: B
          trillion: T
          quadrillion: Q

Затем вы получите:

number_to_human 420 # => "420"
number_to_human 5680 # => "5.68K"
number_to_human 12680 # => "12.7K"
number_to_human 6802251 # => "6.8M"
number_to_human 894100158 # => "894M"