Je cherche à convertir des nombres à un chiffre en nombres à deux chiffres comme ceci:
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
Je pense que je pourrais mettre un tas de déclarations if-else (si le nombre est inférieur à 10, alors faire un gsub), mais je pense que c'est un code horrible. Je sais que Rails a number_with_precision mais je vois que cela ne s'applique qu'aux nombres décimaux. Des idées sur la façon de convertir un chiffre à deux chiffres?
Voulez-vous dire sprintf '%02d', n
?
irb(main):003:0> sprintf '%02d', 1
=> "01"
irb(main):004:0> sprintf '%02d', 10
=> "10"
Vous voudrez peut-être faire référence à la table de format pour sprintf
à l'avenir, mais pour cet exemple particulier, '%02d'
signifie imprimer un entier (d
) prenant au moins 2 caractères (2
) et un remplissage à gauche avec zéros au lieu d'espaces (0
).
Beaucoup de gens utilisent sprintf
(ce qui est la bonne chose à faire), et je pense que si vous voulez le faire pour une chaîne il vaut mieux garder à l'esprit les méthodes rjust
et ljust
:
"4".rjust(2, '0')
Ceci fera en sorte que le "4"
soit justifié à droite en vérifiant qu’il a au moins 2
caractères et qu’il est complété par '0'
. ljust
fait le contraire.
que diriez-vous de "%02d" % 9
? voir http://www.Ruby-doc.org/core-2.0/String.html#method-i-25 et http://www.Ruby-doc.org/core-2.0/Kernel .html # method-i-sprintf .
Essayez ceci, ça devrait marcher:
abc= 5
puts "%.2i" %abc >> 05
abc= 5.0
puts "%.2f" %abc >> 5.00
Comme décrit ici: https://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html , vous pouvez utiliser la méthode de bibliothèque suivante:
number_with_precision(123, precision: 2) // 123.00