Format Money v1.1 //JavaScript Repository

Description

Converts a number into the monetary format "123.456,78" without using loops.
Created: 2005.08.08 - Modified: 2008.04.12

Code ( Download )

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/number/fmt-money [v1.2]

Number.prototype.formatMoney = function(c, d, t){
    var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "",
    i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t)
    + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

Example ( See example )

<script type="text/javascript">
//<![CDATA[

var n = -123456.789;

document.write(
    "n = ", n, "<br />",
    "n.formatMoney() = ", n.formatMoney(), "<br />",
    "n.formatMoney(0) = ", n.formatMoney(0), "<br />",
    'n.formatMoney(6) = ', n.formatMoney(6), "<br />",
    'n.formatMoney(2, "*", "#") = ', n.formatMoney(2, "*", "#"), "<br />"
);

//]]>
</script>

Help

Number.formatMoney([floatPoint: Integer = 2], [decimalSep: String = ","], [thousandsSep: String = "."]): String
Returns the number into the monetary format.
floatPoint
amount of decimal places
decimalSep
string that will be used as decimal separator
thousandsSep
string that will be used as thousands separator

Rank (51 votes)

4.37
0 1 2 3 4 5