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

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

16 messages 2010/06/23

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

From: 田所 <ml_reader@...>
Date: 2010-06-23 17:12:31 UTC
List: ruby-list #47178
田所です。

> 数値を以下のようなフォーマットで表示したいと考えています。
> 
> 100 #=>  "100円"
> 100000500 #=>  "1億500円"
> 123456789 #=>  "1億2,345万6,789円"
> 
> subを連打する以下のコードで、期待どおりの動作を得ることはできましたが、
> もっとスマートな方法をご存知の方はいらっしゃいませんか?
keta = %w!円 万 億 兆!
n.to_s.scan(/\d{1,4}(?=\d{4}*$)/).map{|i|
  i.to_i
}.reverse.zip(keta).reject{|i, k|
  i == 0
}.reverse.join.gsub(/(\d)(\d{3})/, '\1,\2')

参考までに

In This Thread