sjs*_*jsc 107 ruby ruby-on-rails
我希望将单个数字转换为两位数字,如下所示:
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
Run Code Online (Sandbox Code Playgroud)
我想我可以放一堆if-else语句(如果数字小于10,那么做一个gsub)但是这个编码很可怕.我知道Rails有number_with_precision但我看到它只适用于十进制数.有关如何将单位数转换为两位数的任何想法?
Rya*_*igg 190
很多人使用sprintf
(这是正确的事情),我认为如果你想为字符串做这个,最好记住rjust
和ljust
方法:
"4".rjust(2, '0')
Run Code Online (Sandbox Code Playgroud)
这将"4"
通过确保它至少是2
字符长并用它填充来使右对齐'0'
.ljust
反其道而行之.
Mar*_*off 139
你的意思是sprintf '%02d', n
?
irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"
Run Code Online (Sandbox Code Playgroud)
您可能希望将来引用格式表sprintf
,但是对于此特定示例'%02d'
意味着打印一个整数(d
),其中至少占用2个字符(2
),并使用零而不是空格(0
)来填充左边距.
试试这个,它应该工作:
abc= 5
puts "%.2i" %abc >> 05
abc= 5.0
puts "%.2f" %abc >> 5.00
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49524 次 |
最近记录: |