我认为ruby或rails中有一个方法可以做到这一点,但我不记得在哪里找到它或如何搜索它,所以我希望stackoverflow的集体智慧可能有所帮助。 我不介意写一个方法来做到这一点,但我确信有人有更好的解决方案。
答案 0 :(得分:32)
number_to_human(1200, :format => '%n%u', :units => { :thousand => 'K' })
# 1200 => 1.2K
答案 1 :(得分: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"
答案 2 :(得分:4)