在ruby/rails中将1200转换为1.2K

b_d*_*b_d 12 ruby ruby-on-rails helpers ruby-on-rails-3

我认为在ruby或rails中有一个方法可以做到这一点,但我不记得在哪里找到它或如何搜索它,所以我希望stackoverflow的集体智慧可能有所帮助.我不介意写一个方法来做到这一点,但我相信有人有更好的解决方案.

Ana*_*oly 33

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

# 1200 => 1.2K
Run Code Online (Sandbox Code Playgroud)


jos*_*eir 7

如果您的号码恰好是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" 
Run Code Online (Sandbox Code Playgroud)


eug*_*gen 5

看看Rails Number Helper,方法number_to_human_size可能是你需要的。