sum = ["98.3万", "238万", "98.3万", "795万"]
万の単位に注目してその後ろに10000を掛けたいです。
千や百も変換したいです。
できればそれを降順(数字の大きい順に)並べ替えたいです。
質問が大変端的で短いですがよろしくお願い致します。
調べたQiitaの記事です。
https://qiita.com/alfa/items/24611f664949709f530d
下記のようなメソッドを用意されていました。
ruby
1def convert_kansuji(text) 2 text.tr('〇一二三四五六七八九', '0123456789') 3 .gsub(/(\d+)?十(\d+)?/) { ($1 || 1).to_i * 10 + $2.to_i } 4 .gsub(/(\d+)?百(\d+)?/) { ($1 || 1).to_i * 100 + $2.to_i } 5 .gsub(/(\d+)?千(\d+)?/) { ($1 || 1).to_i * 1000 + $2.to_i } 6 .gsub(/(\d+)万(\d+)?/) { $1.to_i * 10000 + $2.to_i } 7 .gsub(/(\d+)億(\d+)?/) { $1.to_i * 100000000 + $2.to_i } 8 .gsub(/(\d+)兆(\d+)?/) { $1.to_i * 1000000000000 + $2.to_i } 9end
こちらを記述し
convert_kansuji(sum)このようにして
引数内に配列を挿入しました。
しかし、undefined method `tr' for ["98.3万", "238万", "98.3万", "795万"]:Array (NoMethodError)
このようなエラーが出ました。
この記事のtrとは一体なんなのか理解できませんでした。
回答3件
あなたの回答
tips
プレビュー