Estoy buscando convertir números de un solo dígito en números de dos dígitos así:
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
Me imagino que podría poner un montón de declaraciones if-else (si el número es menor de 10, entonces haga un gsub) pero imagino que es una codificación horrible. Sé que Rails tiene number_with_precision pero veo que solo se aplica a números decimales. ¿Alguna idea sobre cómo convertir dígitos de un solo dígito en dos dígitos?
ruby-on-rails
ruby
sjsc
fuente
fuente
%02i
para este caso, ya que es más obvio que la salida es y se supone que es un número entero, d es menos intuitivo para las personas que no están acostumbradas a usarsprintf
.'%02d'%1
sin sprintfMucha gente usa
sprintf
(que es lo correcto), y creo que si desea hacer esto para una cadena , es mejor tener en cuenta los métodosrjust
yljust
:Esto hará que el
"4"
derecho esté justificado asegurándose de que tenga al menos2
caracteres de longitud y relleno'0'
.ljust
hace lo contrario.fuente
rjust
evita el costo de analizar la cadena de formato de sprintf, convertir una cadena en un número y volver a convertir ese número en una cadena. Además, es (posiblemente) fácil para un humano entender lo que el código está tratando de hacer de un vistazo.¿qué tal
"%02d" % 9
? ver http://www.ruby-doc.org/core-2.0/String.html#method-i-25 y http://www.ruby-doc.org/core-2.0/Kernel.html#method-i -sprintf .fuente
Prueba esto, debería funcionar:
fuente