いろいろあるけど項目ごとにざっと見れるやつってあまりないので書いてみる
環境
$ bin/rails -v
Rails 5.2.2.1
種類
電話番号
1234567890.to_s(:phone) #=> "123-456-7890"
(当たり前だけど)0始まりは数値だと許容しないからできない
0123456789.to_s(:phone) SyntaxError: (eval):2: Invalid octal digit 0123456789.to_s(:phone) ^~~~~~~~~
通貨
1234567890.to_s(:currency) #=> "$1,234,567,890.00"
localeで国の指定が可能、日本は円
1234567890.to_s(:currency, locale: :ja) => "1,234,567,890円"
パーセンテージ
1が100%とかそういうExcelみたいな換算ではなく、純粋にパーセント表記に変える
1.to_s(:percentage) #=> "1.000%"
小数点以下が不要な場合は :precision
で指定可能
100.to_s(:percentage, precision: 0) #=> "100%"
区切り
3桁くぎりの表現
1234567890.to_s(:delimited) #=> "1,234,567,890"
区切り文字は指定できる。
1234567890.to_s(:delimited,delimiter: '/') #=> "1/234/567/890"
数値丸め
デフォルトは小数点以下3桁以降は丸め
12345.67890.to_s(:rounded) #=> "12345.679"
丸め位置は調整可能
12345.67890.to_s(:rounded, precision: 1) #=> "12345.7"
ただしマイナス表現は不可
12345.67890.to_s(:rounded, precision: -1) ArgumentError: negative argument
バイト表現
1234567890.to_s(:human_size) #=> "1.15 GB"
ちゃんと1000を指定すると1000Byteになる
1000.to_s(:human_size) #=> "1000 Bytes" 1024.to_s(:human_size) #=> "1 KB" 1025.to_s(:human_size) #=> "1 KB"
英語表記
thousandとか、hundredはない
1000.to_s(:human) #=> "1 Thousand" 100.to_s(:human) #=> "100"