JavaScript: formattare i numeri con le virgole decimali

Una semplice tecnica per formattare i numeri con le virgole decimali in JavaScript.

JavaScript di Gabriele Romanato

JavaScript non dispone di una funzione analoga a number_format() di PHP, ma necessita di una particolare manipolazione delle stringhe per formattare un numero con le virgole decimali. Vediamo insieme questa tecnica.

La seguente funzione opera su un numero passato come argomento di tipo stringa:


function formatComma(amount) {
	var delimiter = ","; 
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3) {
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}

Esempio d'uso:


var amount = '2345643.00';
var comma = formatComma(amount);
console.log(comma); // 2,345,643.00

Commenti