我试图让像1234567这样的数字变成1,234,567,但需要一些帮助。我的想法是,我可以使用\d{3}
分割,然后加入a。但问题是\d{3}
将它从另一端分组,所以它就像123,456,7,我不想要它。
非常感谢您的帮助!
答案 0 :(得分:1)
我不知道ruby是否已经选择格式化数字但是在正则表达式中你可以这样做
/\G([+-]?\d+?)(?=(?:\d{3})++(?=\.\d++$|$))/g
然后替换为
\1,
答案 1 :(得分:1)
我使用Rails' ActiveSupport(即使我没有在实际应用程序中使用Rails),它也为当前语言环境正确地格式化它。如果您还没有使用Rails,则需要安装gem:
gem install activesupport
然后,要求它:
require "active_support/core_ext"
然后你可以这样做:
=> ActiveSupport::NumberHelper.number_to_delimited(1234567)
=> "1,234,567"
答案 2 :(得分:0)
更精确的代码(仅处理整数,因为OP没有提到浮点数!):
def group_digits(n)
n.to_s.chars
.reverse
.each_slice(3)
.map(&:join)
.join(",")
.reverse
end