正如你在ruby中所知,你可以做到
"%03d" % 5
#=> "005"
"%03d" % 55
#=> "055"
"%03d" % 555
#=> "555"
所以基本上数字将有3个字符串位置的“0”前缀
只是想知道是否有可能以类似的方式做数字字符串后缀? (如果声明请不要)
something 5
#=> 500
something 55
#=> 550
something 555
# => 555
答案 0 :(得分:7)
ljust方法怎么样?
"5".ljust(3, "0")
以及一些to_s
和to_i
方法调用,如果您想对整数执行此操作
你可以通过更多数学运算来避免字符串转换,例如log_10
来查找整数中的位数,然后i *= 10**x
x
,其中def something(int, power=3)
int * 10**([power - Math.log10(int).to_i - 1, 0].max)
end
是你需要多少0
{{1}}
答案 1 :(得分:0)
怎么样
def prettify(n)
("%03d" % (n.to_s.reverse.to_i)).to_s.reverse
end
其中
维护这段代码可能会在几个月后成为挑战,当然: - )