平山情報サービス

E-mail:k-hirayama@hira-js.com

■□■ 時々日記 ■□■

2020.10.09 Rubyで数字を3桁のカンマ区切りにする方法

こんにちは。平山情報サービスです。

前回、ドコモ口座の不正引き出しの記事を書いてからはやいもので、約1ヵ月が過ぎました。最近、気温も下がってきたので、体調管理には気を付けてください。
さて、早速ですが数字をカンマ区切りにする方法を下に書いていきますので、良かったら参考にしてください。

1.経緯
業務中に暇だったので、私の携わっているシステムはRuby on Railsを使用しているので、Rubyの勉強がてらに自分の資産の評価額が分かるローカル(自分のPCだけでしか閲覧できない)なサイトを作ることにしました。
現金預金だけなら、評価額は変わらないのですが、私はFXと株が大好きなので基本的には資産の評価額が1秒ごとに変わります。ただ、業務中はそのようなページを見るわけには行かないので、自分の資産の評価額が分かるローカルなサイトを作ろうと思ったわけです。
んで、実際に計算式を書いてWebページで表示したところ、評価額が3桁のカンマで区切られていないことが気になったんでRubyで区切れないか調べました。そして、その過程で少しだけ躓いたので、どうせだったらと記事にしました。

2.やり方
ネット調べたら .to_s(:delimited) と記述するだけとあったので実行してみたところ、下記のエラーになってしまいました。

C:\Users\hirayama>irb
>> 50000.to_s(:delimited)
Traceback (most recent call last):
    3: from C:/Ruby25-x64/bin/irb.cmd:19:in `<main>'
    2: from (irb):1
    1: from (irb):1:in `to_s'
TypeError (no implicit conversion of Symbol into Integer)

ということで、さらに調べてみるとこの qiitaの記事(https://qiita.com/noriaki/items/d6c0503e7d25c7329bf7)に 要アクティブサポート と書いてありましたので、アクティブサポートをインストール。
※ gem install activesupport ←Windowsならcmdでこれを実行します。

さらに、上記のページに書いてあるとおり、 require 'active_support/core_ext/numeric/conversions' を追加したところ、目的を達成することが出来ました。

C:\Users\hirayama>irb
>> require 'active_support/core_ext/numeric/conversions'
=> true
>> 123456789.to_s(:delimited)
=> "123,456,789"

<< 前の記事  次の記事 >>

<< 記事一覧へ戻る