Format text as money in javascript

I found this great little piece of javascript that will take a value and format it as currency.  For example,  12345.3243 will become 12,345.32.

<script language=”JavaScript” type=”text/javascript”>function formatCurrency(num) {

num = num.toString().replace(/\$|\,/g, ”);

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 (var 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));

return (((sign) ? ” : ‘-‘) + num);

}

I than reformatted the regular expression so that non-decimal characters would be removed without destroying the original value, but this will also remove the cents.

<script language=”JavaScript” type=”text/javascript”>function formatCurrency(num) {

num = num.toString().replace(/\D|\,/g, ”);

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 (var 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));

return (((sign) ? ” : ‘-‘) + num);

}

I’m going to give it another try later so the cents will stay in tact.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s