Saya ingin mengubah angka satu digit menjadi angka dua digit seperti ini:
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
Saya pikir saya bisa meletakkan banyak pernyataan jika-lain (jika angkanya di bawah 10, maka lakukan gsub) tetapi angka itu pengkodean yang mengerikan. Saya tahu Rails memiliki number_with_precision tetapi saya melihat bahwa itu hanya berlaku untuk angka desimal. Adakah ide tentang cara mengubah satu digit menjadi dua digit?
ruby-on-rails
ruby
sjsc
sumber
sumber
%02i
untuk kasus ini karena lebih jelas bahwa outputnya dan seharusnya bilangan bulat, d kurang intuitif untuk orang yang tidak terbiasa menggunakansprintf
.'%02d'%1
tanpa sprintfBanyak orang menggunakan
sprintf
(yang merupakan hal yang benar untuk dilakukan), dan saya pikir jika Anda ingin melakukan ini untuk sebuah string , sebaiknya ingat metoderjust
danljust
:Ini akan membuat
"4"
hak dibenarkan dengan memastikan setidaknya2
panjang karakter dan melapisinya'0'
.ljust
melakukan sebaliknya.sumber
rjust
menghindari biaya penguraian string format sprintf, mengonversi string menjadi angka, dan mengonversi angka itu kembali menjadi string. Plus, (bisa dibilang) mudah bagi manusia untuk memahami apa yang coba dilakukan kode secara sekilas.bagaimana
"%02d" % 9
? lihat http://www.ruby-doc.org/core-2.0/String.html#method-i-25 dan http://www.ruby-doc.org/core-2.0/Kernel.html#method-i -sprintf .sumber
Coba ini, seharusnya berhasil:
sumber