こんにちは、hachi8833です。
書式付き文字列メソッド「Strings#%」
Strings#%は、Kernel.#sprintfと同様の書式付き文字列メソッドです。
putsやpなどの出力以外でも使えますし、Kernel.#sprintfよりも生々しくないので、よりRubyらしく文字列フォーマットできるStrings#%を活用するとよいでしょう。あまり凝った書式にすると可読性が落ちるかも。
オプション
Strings#%の書式オプションは、ドキュメントにもあるようにC言語のsprintf(3)とだいたい同じです。というより多くはsprintf(3)をそのまま利用しています。
詳しくはドキュメントを見ていただくとして、よく使いそうなものをリストしておきます。
小数点: g
str = "%.05g" %  10 #=> "10"     (.05gで小数以下5桁、#なしだと小数点以下を抑制)
str = "%#.05g" % 10 #=> "10.000" (.05gで小数以下5桁、#ありだと小数点以下を抑制しない)
正負符号: +
str = "%+d" %  10  #=> "+10"     (dで10進整数、+記号で正負符号を追加)
str = "%-d" %  -10 #=> "-10"     (dで10進整数、+記号で正負符号を追加)
ゼロで埋める: 0
str = "%#010d" %  10 #=> "0000000010" (#010dで上位を0で埋める10桁)
文字コードを出力: c
str = "%c" %  10   #=> "\\n" (cで10進数文字コードから文字を出力)
str = "%c" %  0x0a #=> "\\n" (cで16進数文字コードから文字を出力)
 
       
                      
