Mathias Brodala: Fließkommazahlen formatieren

Beitrag lesen

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