Aus Leistungsgründen ziehe ich es vor, eine String-Konstante und substr zu verwenden, etwa so:
package {
public class Helper {
private static const _ZEROS:String = "0000000000000000000000000000000000000000"; // 40 zeros, shorten/expand as you wish
/*
* f: positive integer value
* z: maximum number of leading zeros of the numeric part (sign takes one extra digit)
*/
public static function uint_Zeropadded(f:uint, z:int = 0):String {
var result:String = f.toString();
while (result.length < z)
result = _ZEROS.substr(0, z - result.length) + result;
return result;
}
}
}
Die String-Konstante hat nur einen geringen Fußabdruck im Vergleich zu den Leistungseinbußen, die entstehen, wenn der String mehrmals um eine Stelle verlängert wird. In den meisten Fällen (bis zu 40 Nullen in diesem Beispiel) ist die Anzahl der Anweisungen für alle Aufrufe gleich.
1 Stimmen
Es handelt sich in der Tat um ein Duplikat, obwohl ich es mit der Suchmaschine nie gefunden habe, weil es nicht von Nullen, Auffüllungen und Zahlenformatierungen spricht und die Formulierung Ruby-like im Titel hat.
0 Stimmen
Ja, das ist sehr bedauerlich. Ich hoffe, Ihr Problem ist jetzt gelöst.
0 Stimmen
Es war in der Tat das, wonach ich gesucht hatte. Nun, zunächst nach einer eingebauten Funktion und der besten Implementierung, wenn es keine eingebaute Funktion gibt. Danke für den Link.
0 Stimmen
Ich glaube nicht, dass es sich um ein Duplikat handelt. Die Lösung könnte dieselbe sein, aber die Frage ist eine andere.
0 Stimmen
ActionScript sollte ausgereifter sein und eine eigene Auffüllmethode haben :(