Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
したがって、これがを"%05d" % 123返す場合#=> "00123"、私も戻ることを期待"%05d" % 0123し#=> "00123"ますが、代わりにを返します#=> "00083"。なんでそうなの?
"%05d" % 123
#=> "00123"
"%05d" % 0123
#=> "00083"
0xで始まる数値が16進数として解釈されるのと同じように、0で始まる数値は8進数として解釈されます。83は8進数で123として表されます。
irb(main):001:0> 0123 => 83 irb(main):002:0> 1*8**2 + 2*8**1 + 3*8**0 => 83 irb(main):003:0> "%05d" % 0x7b => "00123"