Hallo nochmal.
Hier einmal eine mögliche Implementation:
Kleine Korrektur für bessere Performance:
Number.prototype.toGerman = function() {
if (typeof(Array.prototype.splice) != 'function') { // IE < 5.5
return false;
}
var s = new String(this); // Zahl in Zeichenkette umwandeln
var pos = s.lastIndexOf('.'); // Letzte Position des Punktes suchen
s = s.split(''); // Zeichenkette in Array aufsplitten
s[pos] = ','; // Punkt durch Komma ersetzen
// Ab Position des Kommas Array rückwärts durchlaufen
for (var i = pos; i > -1; --i) {
/* Alle drei Ziffern Tausendertrennzeichen setzen;
* natürlich nicht direkt vor das Komma
*/
if (((i - 1) % 3 == 0) && (i != pos)) {
s.splice(i, 0, '.');
}
}
// Array wieder als Zeichenkette zusammensetzen und zurück geben
return s.join('');
}
Hierbei spart man sich durch das explizite Erstellen eines String-Objektes die implizite Umwandlung von Literal zu Objekt bei den Aufrufen von lastIndexOf() und split().
Gruß, Math*genug jetzt*ias
--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules