Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any built-in method in RoR to fill zero for integer?

If I want "00001" instead of "1", apart from writing my own filling zero method, is there any built in method can help me fill in zero for the integer?

like image 658
DNB5brims Avatar asked Jan 25 '10 17:01

DNB5brims


1 Answers

puts "%05d" % 1    # 00001

See: String::%, Kernel::sprintf

Here's what's going on. The "%05d" to the left of the % is a C style format specifier. The variable on the right side of the % is the thing to be formatted. The format specifier can be decoded like this:

  • % - beginning of format specifier
  • 0 - Pad with leading zeros
  • 5 - Make it 5 characters long
  • d - The thing being formatted is an integer

If you were formatting multiple things, you'd put them in an array:

"%d - %s" % [1, "One"]    # => 1 - one
like image 160
Wayne Conrad Avatar answered Nov 02 '22 05:11

Wayne Conrad