Ausgabe ohne KOMMA, aber als EUR formatiert , toLocaleString
bearbeitet von Rolf BHallo Therry,
~~~js
let a = 12345,67;
console.log(a.toLocaleString('de-DE', {
style: 'currency',
currency: 'EUR',
maximumFractionDigits:0});
Uncaught RangeError: maximumFractionDigits value is out of range.
~~~
Die Doktrin der Bibliotheksautoren ist offenbar: Zum Euro gehören Cents, und die hat man gefälligst nicht zu verheimlichen.
D.h. dein Darstellungswunsch ist nicht "currency"-konform, und dann hilft nur
~~~js
console.log(a.toLocaleString("de-DE", { maximumFractionDigits: 0 }) + " €");
~~~
Das hat den Nachteil, dass Du keine automatische locale-gerechte Formatierung von Währungswerten bekommst (also welches Symbol, ist es vor oder nach dem Betrag).
Eine andere Alternative könnte sein:
~~~js
console.log(Math.round(a)
.toLocaleString('de-DE', {
style: 'currency',
currency: 'EUR',
maximumFractionDigits:0})
.replace(",00",""));
~~~
Damit hast Du die Formatierungsregeln für Beträge, und die Nachkommastellen sind weg. Dass keine entstehen, stellt das round zuvor sicher.
_Rolf_
--
sumpsi - posui - obstruxi