Rolf B: Ausgabe ohne KOMMA, aber als EUR formatiert , toLocaleString

Beitrag lesen

Hallo Gunnar,

ob diese Methode ist, was der OP will, ist völlig unklar. Von einer automatischen Umschaltung zwischen "mit/ohne Cents" je nach Betrag war keine Rede.

Wenn überhaupt, dann sollte man sie toEuroString nennen und einen booleschen Parameter roundToFullEuro vorsehen.

Und das schön in {} verpackt um die Format-Objekte aus dem globalen Scope rauszuhalten. IIFEs sind sowas von 2011…

Dazu das fullEuro Objekt so anlegen, dass es withCents als Prototyp verwendet. Warum die Properties doppelt definieren?

Die useGrouping Zeile kann man aktivieren, wenn die Tausendertrenner nicht gewünscht sind.

{
  const withCents = {
           style: 'currency', 
           currency: 'EUR',
        // useGrouping: false,
        },
        fullEuro = Object.create(withCents);

  fullEuro.minimumFractionDigits = 0;
  fullEuro.maximumFractionDigits = 0;

  Number.prototype.toEuroString = function(roundToFullEuro) {
	  return this.toLocaleString(
             'de-DE',
             roundToFullEuro ? fullEuro : withCents
           );
  };
}

console.log((12345.67).toEuroString());
// -> 12.345,67 €
console.log((12345.67).toEuroString(false));
// -> 12.345,67 €
console.log((12345.67).toEuroString(true));
// -> 12.346 €

Rolf

--
sumpsi - posui - obstruxi