怎么做数字到字符串后缀

时间:2012-07-16 10:39:07

标签: ruby-on-rails ruby

正如你在ruby中所知,你可以做到

"%03d" % 5
#=>  "005"

"%03d" % 55
#=> "055"

"%03d" % 555
#=> "555"

所以基本上数字将有3个字符串位置的“0”前缀

只是想知道是否有可能以类似的方式做数字字符串后缀? (如果声明请不要)

something 5
#=> 500

something 55
#=> 550

something 555
# => 555

2 个答案:

答案 0 :(得分:7)

ljust方法怎么样?

"5".ljust(3, "0")

以及一些to_sto_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

其中

  • 将您的号码转换为字符串
  • 将其反转
  • 将其转换回数字
  • 格式化
  • 将其转换回int
  • 再次将其反转

维护这段代码可能会在几个月后成为挑战,当然: - )