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"