JSFiddle - React, Tailwind, and code Playground
JavaScript
formatNumber('32432342342.3574', 5);
formatNumber(32432342342.3574, 2);
formatNumber(1342.525423, 4, ".", ",");
formatNumber(1342.525423, 2, ",", ".");
formatNumber(1342.525423);
formatNumber(1342.525423, 0);
formatNumber(342.525423, 8);
formatNumber(42.525423, 8, null, null, false);
formatNumber(2.5, 3, ",", ".");
function formatNumber(num, precision, sep, thousand, addTrailing0) {
if (isNaN(num))
return "";
if (isNaN(precision))
precision = 2;
if (typeof addTrailing0 == "undefined")
addTrailing0 = true;
var factor = Math.pow(10, precision);
num = String(Math.round(num * factor) / factor);
if (addTrailing0 && precision > 0) {
if (num.indexOf(".") < 0)
num += ".";
for (var length = num.substr(num.indexOf(".")+1).length; length < precision; ++length)
num += "0";
}
var parts = num.split(".");
parts[0] = parts[0].split("").reverse().join("").replace(/(\d{3})(?=\d)/g, "$1" + (thousand || ",")).split("").reverse().join("");
num = parts[0] + (parts.length > 1 ? (sep || ".") + parts[1] : "");
//debug:
document.write(num + "<br />");
return num;
}