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

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

16 messages 2010/06/23

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

From: "YOSHIIZUMI" <t-yoshiizumi@...>
Date: 2010-06-24 12:53:50 UTC
List: ruby-list #47192
 吉泉です。

 田所さんのスクリプト、凝縮されていて rubyの力を引き出している感じが
します。参考になります。
 ところで、私が前のメールで提示したスクリプトの変換だと、

10000 → "1万" ("1万円"にならない)
0 → "" ("0円"にならない)

という問題があるので、田所さんのを基にして、ちょっとだけ書き換えてみま
した。一応 掲げておきます。

---- ここから
def num_conv(n)
  keta = %W!#{} 万 億 兆!
  ((r = 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')) == '' ? '0' : r) + '円'
end

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

P.S.
 #47179の石川さんが言われることに同感です。日本語標記で無理に3桁区切
りを採ると、読みにくいです。
 また、時々みかける「単位は選円」も苦労させられます。単位を「万」にし
て「1.5万円」のように書いた方がずっと分かりやすいと思うんですが。


In This Thread

Prev Next