Ich möchte einstellige Zahlen wie folgt in zweistellige Zahlen umwandeln:
9 ==> 09
5 ==> 05
12 == 12
4 ==> 04
Ich denke, ich könnte ein paar if-else-Anweisungen setzen (wenn die Zahl unter 10 liegt, dann mache einen gsub), aber ich denke, das ist eine schreckliche Codierung. Ich weiß, dass Rails number_with_precision hat, aber ich sehe, dass dies nur für Dezimalzahlen gilt. Irgendwelche Ideen, wie man einstellige in zweistellige Zahlen umwandelt?
ruby-on-rails
ruby
sjsc
quelle
quelle
%02i
für diesen Fall verwenden, da es offensichtlicher ist, dass die Ausgabe eine Ganzzahl ist und sein soll. D ist weniger intuitiv für Personen, die nicht so an die Verwendung gewöhnt sindsprintf
.'%02d'%1
ohne SprintfViele Leute verwenden
sprintf
(was das Richtige ist), und ich denke, wenn Sie dies für eine Zeichenfolge tun möchten, ist es am besten, dierjust
undljust
Methoden zu beachten :Dadurch wird das
"4"
Recht gerechtfertigt, indem sichergestellt wird, dass es mindestens2
Zeichen lang ist, und es mit aufgefüllt wird'0'
.ljust
macht das Gegenteil.quelle
rjust
die Verwendung werden die Kosten für das Parsen der Sprintf-Formatzeichenfolge, das Konvertieren einer Zeichenfolge in eine Zahl und das Zurückkonvertieren dieser Zahl in eine Zeichenfolge vermieden. Außerdem ist es für einen Menschen (wohl) leicht zu verstehen, was der Code auf einen Blick versucht.wie wäre es
"%02d" % 9
? Siehe http://www.ruby-doc.org/core-2.0/String.html#method-i-25 und http://www.ruby-doc.org/core-2.0/Kernel.html#method-i -sprintf .quelle
Versuchen Sie dies, es sollte funktionieren:
quelle