回答:
もしかしてsprintf '%02d', n?
irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"
将来的にはフォーマットテーブルsprintfを参照する必要があるかもしれませんが、この特定の例で'%02d'はd、少なくとも2文字(2)の整数()を出力し、スペース(0)の代わりにゼロで左パディングします。
%02i出力が整数であることが想定されているため、この場合はおそらく使用する必要があります。dは、の使用に慣れていない人にとっては直感的ではありませんsprintf。
'%02d'%1sprintf がなくても簡単にできる
多くの人がこれを使用していますsprintf(これは正しいことです)。これを文字列に対して実行したい場合はrjust、ljustメソッドとメソッドに留意するのが最善だと思います。
"4".rjust(2, '0')
これ"4"により、少なくとも2文字の長さが確保され、が埋め込まれることにより、右揃えになり'0'ます。ljust反対を行います。
rjust、sprintfのフォーマット文字列を解析し、文字列を数値に変換し、その数値を文字列に戻すコストを回避できます。さらに、コードが何をしようとしているのかをひと目で理解するのは、(おそらく)人間にとって簡単です。
これを試してください、それはうまくいくはずです:
abc= 5
puts "%.2i" %abc >> 05
abc= 5.0
puts "%.2f" %abc >> 5.00