AS3: Stringoperation Tausendertrennung / Zifferngruppierung

Ein sehr triviales Problem tritt bei der Darstellung von sehr großen Zahlen auf. Um die Lesbarkeit dieser Zahlen zu erhöhen, sollte man die Ziffern gruppieren. Allgemein spricht man hier von der Tausendertrennung. Diese Funktion erledigt das für euch!

Der Aufruf

// Ergebnis: 1.010
groupNumber(1010);
// Ergebnis 222.111
groupNumber(222111);
// Ergebnis 1.234.567.890
groupNumber(1234567890);

Die Funktion finden Sie nach dem Break!

 

Die Funktion

function groupNumber (value:Number):String {
	// Zahlen in ein String umwandeln und in ein Array aufsplitten
	var tmpStrArray:Array = String(value).split("");
	tmpStrArray.reverse();
	
	// Trennzeichen festlegen
	var separator:String = ".";
	var ergStr:String = "";
	var count:int = 0;
	
	for each(var sign:String in tmpStrArray) {
		trace(sign);
		
		if(count == 3){
			ergStr += separator;
			count = 1;
		}else{
			count++;
		}
		ergStr += sign;
	}
	return ergStr.split("").reverse().join("");
}



2 Antworten : “AS3: Stringoperation Tausendertrennung / Zifferngruppierung”

  1. Thomas sagt:

    sry, aber der Code funktioniert nur mit positiven Ganzzahlen korrekt (sprich unsigned integer)
    hier eine alternative:

    function groupNumber(value:Number, separator:String=".", komma:String=","):String
    {
    var sign:Boolean = value < 0;
    var s:String = (sign? -value: value).toString();
    var i:int = s.indexOf(".");
    var out:String = "";
    i==-1? i = s.length: out = komma + s.substr(i + 1);
    for (i -= 3; i > 0; i-=3)
    out = separator + s.substr(i, 3) + out;
    return (sign? "-": "") + s.substr(0, 3 + i) + out;
    }
    

Kommentar verfassen