[英]Ruby on Rails: How do you add add zeros in front of a number if it's under 10?
我希望将一位数字转换为两位数字,如下所示:
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
我想我可以放一堆 if-else 语句(如果数字小于 10,那么做一个 gsub)但我认为这是可怕的编码。 我知道 Rails 有 number_with_precision,但我看到它只适用于十进制数。 关于如何将个位数转换为两位数的任何想法?
很多人使用sprintf
(这是正确的做法),我认为如果您想对字符串执行此操作,最好记住rjust
和ljust
方法:
"4".rjust(2, '0')
这将通过确保它至少有2
字符长并用'0'
填充它来使"4"
正确对齐。 ljust
正好相反。
试试这个,它应该可以工作:
abc = 5
puts "%.2i" % abc # => 05
abc = 5.0
puts "%.2f" % abc # => 5.00
Rubocop建议使用format
不是sprintf
和%
。 我认为它更直观:
format('%02d', 7) # => "07"
format('%02d', 12) # => "12"
如下所述: https : //api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html ,您可以使用库方法:
number_with_precision(123, precision: 2) // 123.00
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.