JSFiddle - React, Tailwind, and code Playground

by der_robert

JavaScript

function number_format(number, decimals, decPoint, thousandsSep){
	decimals = decimals || 0;
    var temp = number.toString(); // number zu String wandeln
    var temp = temp.replace(",","."); // komma durch punkt ersetzen
	number = parseFloat(temp); // zurück in float wandeln

	if(!decPoint || !thousandsSep){
		decPoint = '.';
		thousandsSep = ',';
	}

	var roundedNumber = Math.round( Math.abs( number ) * ('1e' + decimals) ) + '';
	var numbersString = decimals ? roundedNumber.slice(0, decimals * -1) : roundedNumber;
	var decimalsString = decimals ? roundedNumber.slice(decimals * -1) : '';
	var formattedNumber = "";

	while(numbersString.length > 3){
		formattedNumber += thousandsSep + numbersString.slice(-3)
		numbersString = numbersString.slice(0,-3);
	}

	return (number < 0 ? '-' : '') + numbersString + formattedNumber + (decimalsString ? (decPoint + decimalsString) : '');
}

//english format
console.log(number_format( 1234.50, 2, '.', ',' )); // ~> "1,234.50"

//german format
console.log(number_format( "1234,50", 2, ',', '.' )); // ~> "1.234,50"

//french format
console.log(number_format( 1234.50, 2, '.', ' ' )); // ~> "1 234.50"