我的声誉显示为 2,606 。
使用Ruby以这种格式显示数字的最佳方法是什么?
答案 0 :(得分:6)
您可以使用这种简单的方法:
class Integer
def pretty_str
case
when self < 1000
to_s
when self < 10000
to_s.insert(1, ",")
when self < 100000
("%.1fk" % (self / 1000.0)).sub(".0", "")
else
(self / 1000).pretty_str << "k"
end
end
end
123.pretty_str #=> "123"
1234.pretty_str #=> "1,234"
12345.pretty_str #=> "12.3k"
123456.pretty_str #=> "123k"
1234567.pretty_str #=> "1.234k"
12345678.pretty_str #=> "12.3kk"
答案 1 :(得分:2)
我刚刚安装了ruby,这是我第一次使用该语言。可能是非常不干净的
def reputation(x)
if x >= 100000
"%dk" % (x / 1000)
elsif x >= 10000
"%.1fk" % (x / 1000.0)
elsif x >= 1000
"%d" % (x/1000) + ",%03d" % (x%1000)
else
"%d" % x
end
end
puts reputation(999) # --> 999
puts reputation(1000) # --> 1,000
puts reputation(1234) # --> 1,234
puts reputation(9999) # --> 9,999
puts reputation(10000) # --> 10.0k
puts reputation(12345) # --> 12,3k
puts reputation(123456) # --> 123k
编辑:删除了return
并添加了数千个逗号