Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

active_supportで数値の変換でも楽をする

active_supportのto_sも非常に使い手のある

パーセンテージ

100.to_s(:percentage, precision: 2)
#=> "100.00%"
100.to_s(:percentage, precision: 0)
#=> "100%"

金額

100_000_000.to_s(:currency)
#=> "$100,000,000.00"

通貨単位はnumber_to_currencyと同じくunitで指定します。

100_000_000.to_s(:currency, precision: 0, unit:"¥")
#=> "¥100,000,000"

あるいはI18n経由でlocaleオプションを使う事も可能です。

人間が認識する形に成型

ハードディスクの容量とかで出てくるアレです

100_000_000.to_s(:human_size)
#=> "95.4 MB"

日本人には余り馴染みがないですがミリオンとかビリオンの記述も

1234567.to_s(:human)  
#=> "1.23 Million"