在Ruby中处理前导零的正确方法是什么?
0112.to_s
=> "74"
0112.to_i
=> 74
为什么将
0112
转换为74
?如何将
0112
转换为字符串"0112"
?我想定义一个方法,该方法以整数作为参数,并以数字降序返回它。
但是,当我有前导零时,这似乎对我不起作用:
def descending_order(n)
n.to_s.reverse.to_i
end
最佳答案
以0
开头的数字文字是八进制表示形式,但以0x
开头的代表十六进制数字或0b
代表二进制数的文字除外。
1 * 8**2 + 1 * 8**1 + 2 * 8**0 == 74
要将其转换为
0112
,请使用具有适当格式字符串的 String#%
或 Kernel#sprintf
:'0%o' % 0112 # 0: leading zero, %o: represent as an octal
# => "0112"
关于ruby - 如何使用整数中的前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28545559/