formatCurrency

by Terrance Smith

HTML

<form>
    <input type="text" id="money" />
    <input type="button" value="format" onclick="formatCurrency2(document.getElementById('money').value);" />
</form>

JavaScript

function formatCurrency2(txt) {
    alert(txt);
    var i;
    var cents;
    var sign;
    var negIndx = txt.toString().indexOf('(');
    var num = txt.toString().replace(/[^\d.\-]/g, '');
    if (negIndx > -1) {
        num = num * -1;
    }

    if (isNaN(num)) { 
        num = "0"; 
    }
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();

    if (cents < 10) { cents = "0" + cents; }
    for (i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++){
        num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    }

    if (sign) {
        //return '$' + num + '.' + cents;
        return num + '.' + cents;
    } else {
        //return '($' + num + '.' + cents + ')';
        return '-' + num + '.' + cents;
    }
}