My TIPs for the programing

プログラミング学習記録

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進表現の整数として出力。

 

 

エクセルの書式のフォーマットを思い出します。

いつもテンプレートしか見ていませんでしたが・・