From: "久保田竜自" Date: 2010-06-23T18:56:28+09:00 Subject: [ruby-list:47175] 金額を漢字フォーマット 億, 千, 万 こんにちは。久保田と申します 数値を以下のようなフォーマットで表示したいと考えています。 100 #=> "100円" 100000500 #=> "1億500円" 123456789 #=> "1億2,345万6,789円" subを連打する以下のコードで、期待どおりの動作を得ることはできましたが、 もっとスマートな方法をご存知の方はいらっしゃいませんか? n.to_s. sub(/([1-9]\d{0,3})(\d{12})$/, '\1兆\2'). sub(/([1-9]\d{0,3})(\d{8})$/, '\1億\2'). sub(/([1-9]\d{0,3})(\d{4})$/, '\1万\2'). gsub(/(\D)0+/, '\1'). sub(/$/, '円'). gsub(/(\d)(?=(?:\d\d\d)+(?!\d))/, '\1,') # 数字をカンマ区切り 正規表現が上手い方のご意見を伺えたら嬉しく思います。 よろしくおねがい致します。