JavaScript: formattare i valori monetari

Nei carrelli di e-commerce gestiti lato client da JavaScript, un'operazione fondamentale è quella di formattare i valori monetari. Vediamo come implementare una semplice funzione di utility.

La nostra funzione è la seguente:


function formatCurrency(amount) {
    var i = parseFloat(amount);
    if (isNaN(i)) {
        i = 0.00;
    }
    var minus = '';
    if (i < 0) {
        minus = '-';
    }
    i = Math.abs(i);
    i = parseInt((i + .005) * 100);
    i = i / 100;
    s = new String(i);
    if (s.indexOf('.') < 0) {
        s += '.00';
    }
    if (s.indexOf('.') == (s.length - 2)) {
        s += '0';
    }
    s = minus + s;
    return s;
}

La nostra funzione accetta come parametro un numero e restituisce una stringa contenente la cifra formattata con le varie posizioni decimali. Esempio:


var formattedCurrency = formatCurrency(12567);
alert(formattedCurrency); // 12567.00