I've checked out Rails number_to_human
but it's not exactly what i want.
I'd like to shorten long numbers without including the full unit name:
420 -> 420
5,680 -> 5,680
12,680 -> 12.6K
6,802,251 -> 6.80M
894,100,158 -> 894M
As you see there is no specific precision but it's more about the length of the overall number
Any one has a good helper method for this?
Put in your config/locales/en.yml
:
en:
number:
human:
decimal_units:
format: "%n%u"
units:
unit: ""
thousand: K
million: M
billion: B
trillion: T
quadrillion: Q
Then you'll get:
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"
Like this:
number_to_human(a_number,format:'%n%u',units:{thousand:'K',million:'M',billion:'B'})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With