Mathias Brodala: Fließkommazahlen formatieren

Beitrag lesen

Hallo Sebastian.

Gibt es in JavaScript eine Möglichkeit, Zahlen so zu formatieren?

Du solltest dir diese Funktionalität aber mit ein bischen Regular Expressions und String-Funktionen nachbauen können.

Falls ich es vergessen hatte zu erwähnen: Mit php kenne ich mich besser aus als mit JavScript und deshalb wird mir das Nachbauen nicht gelingen. Zumindest nicht mehr dieses Jahr.
Da ich das ganze aber recht kurzfristig benötige, bin ich für jede Hilfe dankbar!

Hier einmal eine mögliche Implementation:

Number.prototype.toGerman = function() {  
  
  if (typeof(Array.prototype.splice) != 'function') { // IE < 5.5  
  
    return false;  
  }  
  
  var s = this.toString();  
  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ückgeben  
  return s.join('');  
}  

Da diese Methode nun prototypisch an das Number-Objekt gebunden wurde, steht es praktischerweise direkt bei jeder Zahl zur Verfügung:

var a = 1234567.89;  
var aS = a.toGerman();  
  
alert(aS); // 1.234.567,89  

Einen schönen Sonntag noch.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules