formatowanie liczb w actionscripcie, numberFormat
Jeszcze nie dokończona, ale pomyślałem że się podzielę. Nie znalazłem zwartego sposobu na formatowanie liczb w Actionscript 3, a potrzebne mi było, więc jest. Trzeba dokończyć część poprzecinkową, zmienić parametry z lokalnych na zewnętrzne, ale z tym sobie każdy poradzi. Cała zabawa polega na wyszukaniu wzorca z 4 kolejnych cyfr i separatora, a na dobry początek dodajemy ten separator na końcu części całkowitej. Potem podmieniamy znaleziony kawałek na ciąg: cyfra, separator, 3 cyfry i szukamy znowu. Przeczesujemy w ten sposób liczbę od końca to początku, aż nie zostanie nic do dodania. Prawą, czyli ułamkową część trzeba potraktować zaokrąglaniem… (TODO :)
public static function formatNumber(n:Number):String
{
var s:String = n.toString();
var parts:Array = s.split('.');
var result:String;
var precision:int = 2;
var separaTys:String = Lang.g.separaTys;
var decimalPoint:String = Lang.g.decimalPoint;
var pattern:RegExp = new RegExp("(\\d)(\\d\\d\\d)\\" + separaTys, '');
parts[0] += separaTys;
while(parts[0].search(pattern) > -1) {
parts[0] = parts[0].replace(pattern, ‘$1′ + separaTys + ‘$2′ + separaTys);
}
parts[0] = parts[0].slice(0,-1);
//if(parts.length < 2) parts[1] = ”;
//while(parts[1].length < precision) parts[1] += ‘0′;
//if(parts[1].length > precision)
//TODO: obsługa części po przecinku
return parts[0];
}