Format Money //JavaScript Repository

Description

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

Code (Download)

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/number/fmt-money [rev. #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 (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 (Votes: 107)

4.03