RubyonRails:如果数字小于10,如何在数字前面添加零?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我想把单数数字转换成两位数字,如下所示:

9 ==> 09
5 ==> 05
12 == 12
4 ==> 04

我想我可以放一堆if-etc语句(如果数字低于10,然后执行gsub),但这代码太蠢。

我知道Rails有number_with_precision,但我看到它只适用于十进制数。关于如何将个位数转换成两位数?

提问于
用户回答回答于

你是说sprintf '%02d', n?

irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"

用户回答回答于

很多人用sprintf,但是最好记住rjustljust方法:

"4".rjust(2, '0')

这将使"4"通过确保它至少是正确的2字符长,用'0'...ljust恰恰相反。

扫码关注云+社区