0
Я не могу понять, почему это происходит:Ruby: ведущие нули с уже отформатированной строкой
s = "000301"
"%06d" % s ====> "000193"
sprintf("%06d", s) ====> "000193"
Я не могу понять, почему это происходит:Ruby: ведущие нули с уже отформатированной строкой
s = "000301"
"%06d" % s ====> "000193"
sprintf("%06d", s) ====> "000193"
Потому что интерпретировались как восьмеричное число.
Попробуйте в IRB:
> 0301
=> 193
Но когда вы пишете:
> 301
=> 301
Если вы хотите, чтобы заставить его работать, пытаться преобразовать его в целое с String#to_i
:
"%06d" % s.to_i
sprintf("%06d", s.to_i)
Я писал такое же решение. Благодаря ;) –