# \[noob question\] convert 7 in 07

**URL:** <https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157>\
**Category:** Ruby\
**Created:** [April 22, 2009, 12:38pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157 "2009-04-22T12:38:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 12:38pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/1 "2009-04-22T12:38:56Z")

</div>

Hi,

I would like to display numbers with a 0 before when there is only one  
char.  
For exemple if I gets the number 4, I would like to return 04.

After looking methods on  
[http://www.ruby-doc.org/core/classes/Fixnum.html](http://www.ruby-doc.org/core/classes/Fixnum.html), I don’t see how to  
process. Of cours it is possible to convert a number into string and  
after add a 0, but it’s not very friendly.

Thanks for ideas

---

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 12:45pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/2 "2009-04-22T12:45:00Z")

</div>

2009/4/22 Paul A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> I would like to display numbers with a 0 before when there is only one  
> char.  
> For exemple if I gets the number 4, I would like to return 04.
> 
> After looking methods on  
> [http://www.ruby-doc.org/core/classes/Fixnum.html](http://www.ruby-doc.org/core/classes/Fixnum.html), I don’t see how to  
> process. Of cours it is possible to convert a number into string and  
> after add a 0, but it’s not very friendly.

Please look up sprintf, printf and String#%.

Cheers

robert

---

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 12:52pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/3 "2009-04-22T12:52:14Z")

</div>

counter = 1; sprintf("%02d", counter) # =\> “01”

In general, the ruby String class is much better than Int class -  
because Strings are like everywhere in ruby. I believe Matz once said  
that the String class was most work (or devoured most manhours when he  
worked on ruby initially)

---

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 1:00pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/4 "2009-04-22T13:00:52Z")

</div>

> 

And keep in mind that you will have to convert to string anyway,  
because while 07 is fine  
08 and 09 are illegal in Rubyâ€”it treats numbers with leading zero as  
octal numbers:

> > 7  
> > =\> 7
> 
> > 07  
> > =\> 7
> 
> > 8  
> > =\> 8
> 
> > 08  
> > SyntaxError: (irb):4: Invalid octal digit from /usr/local/bin/irb:12:in  
> > `’

Regards,  
Rimantas

---

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 1:33pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/5 "2009-04-22T13:33:10Z")

</div>

irb(main):001:0\> n=7  
=\> 7  
irb(main):002:0\> “%02d” % n  
=\> “07”

— On Wed, 4/22/09, Paul A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
From: Paul A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: [noob question] convert 7 in 07  
To: “ruby-talk ML” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Date: Wednesday, April 22, 2009, 6:39 AM

Hi,

I would like to display numbers with a 0 before when there is only one  
char.  
For exemple if I gets the number 4, I would like to return 04.

After looking methods on  
[http://www.ruby-doc.org/core/classes/Fixnum.html](http://www.ruby-doc.org/core/classes/Fixnum.html), I don’t see how to  
process. Of cours it is possible to convert a number into string and  
after add a 0, but it’s not very friendly.

Thanks for ideas

---

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 1:50pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/6 "2009-04-22T13:50:47Z")

</div>

On Apr 22, 6:58 am, “DanDiebolt.exe” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> To: “ruby-talk ML” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> Date: Wednesday, April 22, 2009, 6:39 AM
> 
> Hi,
> 
> I would like to display numbers with a 0 before when there is only one  
> char.  
> For exemple if I gets the number 4, I would like to return 04.
> 
> After looking methods onhttp://www.ruby-doc.org/core/classes/Fixnum.html, I don’t see how to  
> process.

Dan’s suggestion is the simplest. But I want to point out that you can  
add a Fixnum method yourself, if you are so inclined:

class Fixnum  
def to\_formatted\_s  
“%02d” % self  
end  
end

puts 7.to\_formatted\_s

---

<div class="post-metadata">

**Author:** ![judge](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/9de0a6/32.png) [@judge](https://www.ruby-forum.com/u/judge)\
**Post date:** [April 22, 2009, 2:33pm UTC](https://www.ruby-forum.com/t/noob-question-convert-7-in-07/166157/7 "2009-04-22T14:33:41Z")

</div>

> \*'s suggestion is the simplest

Well I just picked it up on one of the n-tips for ruby lists. This isn’t  
the list I originally studied but it does contain the same idea in tip  
#9:

1. Pretty print strings decimals. The format descriptors are pretty  
much similar to those used in Câ€™s printf so I wonâ€™t go into details.

my\_string = “%01d %06d %02d” % [type, code, age]  
[http://alexbrie.net/2002/10-ruby-programming-tips-you-should-already-know/](http://alexbrie.net/2002/10-ruby-programming-tips-you-should-already-know/)

These lists are an invaluable resource to improve your code.
