スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Ruby]数字の桁を漢字で表示するモジュールを作ったよ

最近アルゴリズムの本を勉強しつつブログに書いたりしているのですが、そのとき出力した結果がものすごい桁数の数字であることがあります。

まあ、こうやってブログに貼り付ける分にはそのままでもいいのですが、人に口頭で数字を伝えるときにいちいち桁を数えて読み上げるのは非常にめんどくさい。

そこで、FixnumとBignumを拡張するモジュール組んで読み込ませることで、整数を読み上げやすい形式に変換するプログラムを組んでみました。俺得。

# encoding: cp932
module Toj
  def to_j
    number = self
    digit = ["万", "億", "兆", "京", "垓", "禾予", "穣", "溝", "澗", "正",
             "載", "極", "恒河沙", "阿僧祇", "那由他", "不可思議", "無量大数"]
    ketasu = digit.size
    shuturyoku = Array.new
    ketasu.times do |i|
      numbers_stack = Array.new
      4.times do |j|
        stack = number - number / 10 * 10
        numbers_stack.unshift("#{stack}")
        number = number / 10
      end
      shuturyoku.unshift(numbers_stack.join.to_i.to_s)
      if number > 0
        shuturyoku.unshift(digit[i])
      else
        break
      end
    end
    puts shuturyoku.join
  end
end

class Fixnum
  include Toj
end

class Bignum
  include Toj
end

number = 95849480083929012345
number.to_j #=>9584京9480兆839億2901万2345

(自分だけかもしれないけど)便利!

テーマ : プログラミング - ジャンル : コンピュータ

コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。