Enquanto trabalhava em um sistema analÃtico, precisei de uma função js para converter cadeias de números em uma forma mais legÃvel (por humanos).
Então, inspirado pela função php number_format (), eu vim com isso.
esta função assume o formato padrão italiano para números, ou seja, ‘.’ para separadores de milhares e ‘,’ para separador decimal
A função
/**
* @function jsNumberFormat
*
* @param num
* @param decPlaces
* @param thouSeparator
* @param decSeparator
* @returns {string}
*/
function jsNumberFormat(num, decPlaces, thouSeparator, decSeparator) {
decPlaces = isNaN(decPlaces = Math.abs(decPlaces)) ? 0 : decPlaces;
decSeparator = decSeparator == undefined ? "," : decSeparator;
thouSeparator = thouSeparator == undefined ? "." : thouSeparator;
var sign = num < 0 ? "-" : "";
var i = parseInt(num = Math.abs(+num || 0).toFixed(decPlaces)) + "";
var j = (j = i.length) > 3 ? j % 3 : 0;
return sign + (j ? i.substr(0, j) + thouSeparator : "") + i.substr(j).replace(/(d{3})(?=d)/g, "$1" + thouSeparator) + (decPlaces ? decSeparator + Math.abs(num - i).toFixed(decPlaces).slice(2) : "");
};