如果我按003
增加整数1
,我会得到4
。
num = 003
num += 1
# => 4
我希望它是004
。如何在此保留0
?
答案 0 :(得分:3)
首先,003
中的前导零使得Ruby中的八进制整数文字,而不是小数。当然,与3
无关,但它对009
(SyntaxError
),030
等很重要。大概你真的想说:
num = 3
由于前导零不是数字的一部分,它们只是输出时想要的格式。要格式化数字,请使用String#%
或sprintf
:
> '%03d' % 3
=> "003"
> sprintf('%03d', 3)
=> "003"
答案 1 :(得分:3)
您可以将整数转换为String并使用String#rjust
为其提供固定数量的填充,其中第一个参数是结果String的总宽度,第二个参数是用于填充的字符:
>> int = 3
>> str = int.to_s.rjust(3, '0')
#=> "003"
然后你可以使用String#next
增加该字符串:
>> str.next
#=> "004"