仁がWeb技術っぽい記事を書いています。3桁ごとにカンマPocketTweetRubyのCGIで予約システム書いてて金額を数字で扱っていて表示の時に通貨表示としてカンマを3桁ごとに表示したいとおもった。Rubyリファレンスマニュアル上記のサイトを参考にしてIntegerにto_cというメソッドを追加した。"111,222,333"うえむらさんからのコメントでマイナスにも対応したものに修正してみました。-111,222最初は単純にサイトに書いてあるとおりに記述していたけどテストして1,000~111,000にしか対応していないことに気づきちょっと修正した。'\1,\2')あと、メソッドに追加していたのはFixnumにだったけど数が大きくなるとBignumになるので対応できないことにも気づく。PMrubyでプログラミングを学んでみよう、と試行錯誤している者です。3桁ごとにカンマをつけたくなって、検索で跳んできました。すると、反応が無くなり無限ループ(?)に陥っているように見えるのですが、符号に関しては正規表現の(.*\d)の部分でケアしているのでしょうか?この部分が何をしているのか判らなかったので、書き込ませて下さい。PMうえむらさんコメントありがとうございます。マイナスのことは考えてなかったです。おっしゃるとおりループに入ってしまいました。記事を修正してみましたのでよければご参考にしてみてください。PM自分でも書き直してみたのですが、黒川さんの修正の方が判りやすく思われたので、参考にさせて頂きました。to_sの部分を見て面食らってしまったのですが、Integerクラスのメソッドto_sを代入しているのでしょうか(?o?)他にも興味深い記事が多そうなので、散策させて頂きますね。PMなるほど、いわれてみれば変な感じもしますね。普通に使ってたので気にならなかったです。メソッドを代入ではなくメソッドが返す値(String)を代入していることになります。その値が111なら111.to_sの値ということです。self.to_sと書いた方が明示的でわかりやすいかもですね。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。仁がWeb技術っぽい記事を書いています。