Rubyで3桁毎にカンマを入れる。

投稿者: | 2011年12月4日

カレンシータイプのデータじゃないけど、1,000,000のように3桁毎にカンマを入れたいし、どうもrubyのprintfにはフォーマット指定はないし、どうすんのかなー、と思ってググったらあちこちにこんな例が出ていた。これが定番っぽい。

anIntNumber.to_s.reverse.gsub( /(\d{3})(?=\d)/, ‘\1,’ ).reverse

一旦整数を文字列にして、逆転させ後ろから3桁毎に”,”を入れて、もう一度逆転させて出来上がり。うむーこれって最小のツールを与えてそれを組み合わせて解決するカーニハン・プローガー的アプローチだな。