Solved

How could I format this number as currency in Javascript?

Posted on 2014-03-05
3
223 Views
Last Modified: 2014-03-05
Here's the currency function I want to use:

function number_format (number, decimals, dec_point, thousands_sep) {

    number = (number + '').replace(/[^0-9+-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/B(?=(?:d{3})+(?!d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}

/**
*	Usage: 	number_format(123456.789, 2, '.', ',');
*	result:	123,456.79
**/

Open in new window


Downright elegant!

Now, here's my challenge:

I'm sending a value to a <span> tag via JavaScript that looks like this:

function addAllocated(form) {
//var theForm = document.form;
var numRows = form.allocatedlistcount.value;
//alert("allocated: " + numRows);

var total = 0;

    for( var rowIndex = 1; rowIndex <= numRows; rowIndex++ ) {
        eval('allocated = form.allocated_'+rowIndex+'.value');
       // total += document.getElementsByName("allocated_" + rowIndex).value;
       //alert('row: '+rowIndex+'; total: '+total);
       total = total + allocated*1;
       total_allocated.innerHTML = '<span class=\"info\">$'+total+'</span>';
       }
}

Open in new window


I want to format that "total" as currency. But how do you pull off a function within a function?

Thoughts?
0
Comment
Question by:brucegust
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 19

Accepted Solution

by:
Ken Butters earned 500 total points
ID: 39907635
I'm thinking you could update your total line like this:

total_allocated.innerHTML = '<span class=\"info\">$'+number_format(total, 2, '.', ',')+'</span>';

Open in new window

0
 

Author Comment

by:brucegust
ID: 39907765
Ken, when I do this:

total_allocated.innerHTML = '<span class=\"info\">$'+total+'</span>';

I get a number.

When I do this:

   total_allocated.innerHTML = '<span class=\"info\">$'+number_format(total, 2, '.', ',')+'</span>';

I don't get anything.

What am I missing?
0
 

Author Comment

by:brucegust
ID: 39907776
Never mind!

I got it!

Thanks so much!
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
JQuery Syntax... 4 50
How to get total count of passed in subject based on marks? 7 32
Worldmap 1 28
How to get text of href without any ID using Javascript 9 23
In my daily work (mainly using ASP.net), I need to write a lot of JavaScript code. One of the most repetitive tasks I do are the jQuery Ajax calls. You know: (CODE) I don't know if for you it's the same, but for me is soooo tedious to write the …
The task A number given should be formatted for easy reading by separating digits into triads. Format must be made inline via JavaScript, i.e., frameworks / functions are not welcome. So let’s take a number like this “12345678.91¿ and format i…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

740 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question