Преобразование 1200 к 1.2K в рубинах/рельсах

Я думаю, что есть метод внутри ruby ​​или rails, который делает это, но я не могу вспомнить, где его найти или как его искать, поэтому я надеялся, что коллективная мудрость stackoverflow может помочь. Я не против писать метод для этого, но я уверен, что у кого-то есть лучшее решение.

Ответ 1

number_to_human(1200, :format => '%n%u', :units => { :thousand => 'K' })

# 1200 => 1.2K

Ответ 2

Если ваш номер 1223, то принятый ответ будет 1.22K, включите параметр precision, чтобы уменьшить его до 1.2K. Кроме того, если ваш номер может быть большим числом чисел в миллионах и миллиардах, то лучше всего их обслуживать:

number_to_human(1200, :format => '%n%u', :precision => 2, :units => { :thousand => 'K', :million => 'M', :billion => 'B' })
# => "1.2K"

number_to_human(1223, :format => '%n%u', :precision => 2, :units => { :thousand => 'K', :million => 'M', :billion => 'B' })
# => "1.2K" 

number_to_human(1223456789, :format => '%n%u', :precision => 2, :units => { :thousand => 'K', :million => 'M', :billion => 'B' })
# => "1.2B" 

Ответ 3

Взгляните на Rails Number Helper, метод number_to_human_size может быть тем, что вам нужно.