Felix Riesterer: Zahlenformat in Java Rechnung

Beitrag lesen

Lieber betking99,

suchst Du so etwas? (Demo)

/**
* 123456789.0123 => 123.456.789,0123
*
* @param int
* @return string
*/
function dottedNumber (i) {
	var r = ""; // wird Ergebnis

	// s[0] Vorkomma-, s[1] Nachkommastellen
	const s = i.toString().split('.');

	// String rückwärts wenden
	function reverse (str) {
		return str.split("").reverse().join("");
	}

	// wir arbeiten Vorkommastellen von hinten ab
	s[0] = reverse(s[0]);

	while (s[0].length) {

		// Dreiergruppe möglich?
		if (s[0].length > 2) {

			// an r anhängen und mit . trennen
			r += s[0].substr(0, 3) + ".";
			s[0] = s[0].substr(3);

		} else {

			// Rest anhängen und Ende
			r += s[0];
			s[0] = "";
		}
	}

	// letzten Trenner entfernen und wieder umkehren
	r = reverse(
		r.replace(/\.$/, "") // \. für echten Punkt
	);

	// gab es noch Nachkommastellen?
	if (s[1].length) {
		r += "," + s[1];
	}

	return r;
}

In der Demo habe ich die Vorschläge von hier mit eingearbeitet, inklusive einer Prüfung auf Nichtzahlenwerte.

Liebe Grüße

Felix Riesterer