0
因此,如果這個"%05d" % 123
返回#=> "00123"
,我希望"%05d" % 0123
也返回#=> "00123"
,但它會返回#=> "00083"
。這是爲什麼?替代Ruby字符串
因此,如果這個"%05d" % 123
返回#=> "00123"
,我希望"%05d" % 0123
也返回#=> "00123"
,但它會返回#=> "00083"
。這是爲什麼?替代Ruby字符串
以0開頭的數字被解釋爲八進制數字,就像以0x開頭的數字被解釋爲十六進制一樣。 83以八進制表示爲123。
irb(main):001:0>
=> 83
irb(main):002:0> 1*8**2 + 2*8**1 + 3*8**0
=> 83
irb(main):003:0> "%05d" % 0x7b
=> "00123"
感謝您的解釋!我最終用這個代替了: 'value =「0123」 value = value.rjust(5,'0')' – Matt