[#47173] 小数点以下を切り捨てる方法について — "T.Soejima" <clev@...2.so-net.ne.jp>

お世話になっております。そえじま@勉強中です。

16 messages 2010/06/23

[ruby-list:47176] Re: 金額を漢字フォーマット 億, 千, 万

From: "YOSHIIZUMI" <t-yoshiizumi@...>
Date: 2010-06-23 13:33:50 UTC
List: ruby-list #47176
 吉泉といいます。

 金額の漢字フォーマット変換ですが、点字に変換する時に使うため、以前、
下のようなメソッドを書いたことがあります。
 スマートとはいえませんが、参考になるようでしたら幸いです。

-------- ここから
def conv(n)
  s = n.to_s
  ary = []
  while s =~ /^(\d+)(\d{4})$/
    ary << $2.to_i
    s = $1
  end
  ary << s.to_i
  unit = %w(円 万 億 兆)
  r = ''
  ary.each_with_index {|v,i|
    if v > 0
      r = v.to_s.sub(/^(\d)(\d{3})$/, "\\1,\\2") + unit[i] + r
    end
  }
  return r
end

a = [100, 650321, 100000500, 123456789, 1234567890123]
a.each {|n|
  puts conv(n)
}
-------- ここまで

P.S. 煩雑になるので、エラーチェックの部分は取り除きました。


In This Thread