format関数の引数・・%03d"とは
3桁以下の数字を変換する課題(例:4 => 004) にて・・・
puts"数字を入力"
num_i = gets.to_i*2
puts format("%03d", num_i)
formatを初めて使った。
format(format, *arg) -> String
format 文字列を C 言語の sprintf と同じように解釈し、 引数をフォーマットした文字列を返します。
- [PARAM] format:
- フォーマット文字列です。
- [PARAM] arg:
- フォーマットされる引数です。
(ruby リファレンスマニュアルより)
https://docs.ruby-lang.org/ja/latest/method/Kernel/m/format.html
rubyのformatは、c言語のsprintf関数と同じ働きをするらしい。
以下、sprintfの書式
%[nth$][フラグ][幅][.精度]指示子
%
前述の%から始まる文字列は、フォーマット文字列と呼ばれる。
0
フラグには #, +, ' '(スペース), -, 0 の5種類がある。
今回は、数字を右詰にする『0』に該当。
他には、符号付きにする『+』や2進法・4進法等の際にそれを明示する『#』等がある。
3
0以外の数字で始まる数字列は幅指定になります。
幅は生成文字列の長さを示します。
d
末尾のdは指示子と呼ばれ、引数の型を示す。
指示子は大きく分けて以下の通り。
- 文字列を表す指示子: c, s, p
- 整数を表す指示子: d, i, u, b, B, o, x, X,
- 浮動小数点数を表す指示子: f, g, e, E, G
それぞれに細かい意味があるので使う時は調べる必要がある。
ちなみにdは、引数の数値を10進表現の整数として出力。
エクセルの書式のフォーマットを思い出します。
いつもテンプレートしか見ていませんでしたが・・