Just do IT

思うは招く

Ruby や Rails で桁数を3行ごとにカンマで区切る

Ruby の場合

素の Ruby の場合、該当するメソッドはないため自作する。

数値をいったん文字列にして、正規表現を使ってカンマを加える。

数値.to_s.gsub(/(\d)(?=\d{3}+$)/, '\\1,')

使用例

irb(main)> 500000000.to_s.gsub(/(\d)(?=\d{3}+$)/, '\\1,')
=> "500,000,000"

Rails の場合

Rails だと Active Support の拡張機能を使っていろんな数値の書式を扱える。

Active Support コア拡張機能 - Railsガイド

#カンマを加える
12345678.to_s(:delimited)                     # => 12,345,678
12345678.05.to_s(:delimited)                  # => 12,345,678.05