12345678円といった数を、1億234万5678円のように表示させるにはどのようにすればいいのですか?
number_to_human等でカンマ区切りをすることはできるのですが、
漢字フォーマント表示がうまくできません。
回答の方よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
1千万の位が抜けているのは愛嬌として、EmacsLispですが、
金額を漢字フォーマット が作り方の参考になるでしょうか?
これから海外に展開して使うというシステムでこの手の処理や和暦を使っていたのを見たことがあります。移行担当者は大変だとは思いました。
投稿2016/10/15 20:01
総合スコア16417
0
参考情報
- rubyで数値を日本語表記に変換するgem「yen」を作った http://simanman.hatenablog.com/entry/2013/09/22/102704
投稿2016/10/16 02:39
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
億、万の単位のみで単位を表示するならば、以下のようにinsert
を用いた文字列操作で実現できます。
他の単位を追加する場合は応用して対応することもできますよ。
ruby
1def add_units(str) 2 # insertは破壊的なメソッドなので元の文字列が変化しないようにコピー 3 dup_str = str.dup 4 # 後ろから6番目("123456789円"の"5"の後ろに"万"を挿入) 5 dup_str.insert(-6, '万') if dup_str.length >= 6 6 # 後ろから11番目("12345万6789円"の"1"の後ろに"億"を挿入) 7 dup_str.insert(-11, '億') if dup_str.length >= 11 8 dup_str 9end 10 11str = '123456789円' 12 13p add_units str 14#=> "1億2345万6789円" 15 16# 元の文字列は変化していない 17p str 18#=> "123456789円 19 20# 億に満たなくてもエラーにならない 21str2 = '12345円' 22 23p add_units str2 24#=> "1万2345円" 25 26# 万に満たなくてもエラーにならない 27str3 = '1234円' 28 29p add_units str3 30#=> "1234円"
投稿2016/10/15 23:29
総合スコア891
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
私もお手軽に実現したかった時に katoy さんが紹介している yen gem を使った事があります。
Gemfile
に
Gemfile
1gem 'yen'
を追加して bundle install
すると Integer class が拡張され .to_j
.to_yen
メソッドが使えるようになります。
あとは View などで
erb
1<%= product.price.to_yen %> や 2<%= 10_000.to_j %> 3<%= 100_000_000.to_yen %> など
といった感じで使えます。
問題点は I18n には対応していないので多言語アプリケーションにはちょっと向かないといったところでしょうか。
投稿2016/10/16 03:14
総合スコア1728
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。