Я думаю, что есть метод внутри ruby или rails, который делает это, но я не могу вспомнить, где его найти или как его искать, поэтому я надеялся, что коллективная мудрость stackoverflow может помочь. Я не против писать метод для этого, но я уверен, что у кого-то есть лучшее решение.
Преобразование 1200 к 1.2K в рубинах/рельсах
Ответ 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
может быть тем, что вам нужно.