Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium


Rounding numbers to two decimals

Posted on 1998-11-30
Medium Priority
Last Modified: 2008-03-17
In the following Script; how do I get the total to round to two decimal places i.e. $21.36?

<script language="JavaScript">
var N=3 // number of VAL/QTY  pairs

function calcit()
      stotal = 0;
      f = document.forms[0];
      for(i=0 ; i<N ; i++)
            if (f.elements[i*2].value >= 0)
                  v = f.elements[i*2].value;
                  q = f.elements[i*2+1].value;
                  t1 = v * q;
                  stotal += t1;
                  f.stotal.value = "$" + stotal;

      total = stotal * 1.0775;
      f.total.value = "$" + total;

VAL1:<INPUT TYPE="text" name="v1" value="" size=6><br>
QTY:<INPUT TYPE="text" name="q1" value="1" size=3><br>

VAL2:<INPUT TYPE="text" name="v2" value="" size=6><br>
QTY:<INPUT TYPE="text" name="q2" value="1" size=3><br>

VAL3:<INPUT TYPE="text" name="v3" value="" size=6><br>
QTY:<INPUT TYPE="text" name="q2" value="1" size=3><br>

STOTAL:<input name="stotal" type='text'>
TOTAL:<input name="total" type='text'>
<input type="submit" value="calculate" onClick="calcit();return false;">
Question by:timothy1
  • 4
LVL 75

Accepted Solution

Michel Plungjan earned 150 total points
ID: 1274806
This one is from Netscape:
<head><title>Round off Long numbers</title>
function roundOff(value, precision)
        value = "" + value //convert value to string
        precision = parseInt(precision);

        var whole = "" + Math.round(value * Math.pow(10, precision));

        var decPoint = whole.length - precision;

        if(decPoint != 0)
                result = whole.substring(0, decPoint);
                result += ".";
                result += whole.substring(decPoint, whole.length);
                result = whole;
        return result;

<h3><center>Testing Rounding off Long floating point
<form name=myForm>
Enter a long number <input type=text name=text1
value=5.199999999999999999 size=20>
Enter precision     <input type=text name=text2 value=2 size=2>
Result              <input type=text name=text3>
<input type=button value=Calculate onClick="myForm.text3.value =
roundOff(myForm.text1.value, myForm.text2.value)">
LVL 75

Expert Comment

by:Michel Plungjan
ID: 1274807
So in your case it would be

f.total.value = "$" + roundOff(total, 2);
f.stotal.value = "$" + roundOff(stotal, 2);

LVL 10

Expert Comment

ID: 1274808
mplungjan, Do you EVER check your posts?
Try to roundOff(0.11,2) with script you suggested
you will get 11 instead of 0.11

timothy1, this is bugs free solution. (TESTED)
Hope this one is better than above buggy solution
from developer.netscape.com

function roundOff(total,prec)
 if(inx!=-1) total=total.substring(0,inx);
 while(total.length<prec) total="0"+total;
 return total;

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

LVL 75

Expert Comment

by:Michel Plungjan
ID: 1274809
Hey, hey, kollegov - that comment was uncalled for...
I check 99.9% of my answers.

In this case I cut and pasted a script from netscape and I really expected to work without even thinking it might be wrong. I am at home on a crap pc so I skipped testing for once.

Timothy: I am sorry if the script did not work. Feel free to reject my answer and if kolloegovs script works better, let him answer instead. I would normally give you one of my (tested) scripts, but they are not on my home pc. I apologise.


Author Comment

ID: 1274810
Well guys don't fight! I put the first one in my Html (after taking out just the script) and sent the roundoff() function various prices. It worked fine. The object was to use it in an order form, so the user wouldn't get the math wrong when figuring the sales tax (or sub-totals). I doubt if the customer will have prices that after taxes will end up with 0.11 it works fine with 20.101 and the like.

I will try the other one also, but I think the first will fit the need I haven't taken Java yet only "C", but as you know they seem to be similiar in syntax and grammer.

Interestingly enough, you mentioned this came from Netscape?
I ran it through IE4 and it worked fine.

You don't happen to know of a online reference or tutorial that list all those math.round(), math.pow(), parseInt(), etc. functions that I see in the code and tells what they are for?
I can guess at most, but a list would be cool!

I'll check out that URl,,,,developer.netscape.com

Again Thanks,
LVL 75

Expert Comment

by:Michel Plungjan
ID: 1274811
Thanks. Netscape and Microsofts core javascript works 99.99999999997 % the same ;-).

http://developer.netscape.com/ also has the javascript reference
It seems the site is down for maintenance so I cannot give you the exact URL of the math stuff.
Javascript syntax looks a lot like java especially in the math package.
Math.round rounds down to the nearest integer
Math.pow(x,y) will compute x to the power of y - may cause overflow for large values of y
for IEs look at http://msdn.microsoft.com/scripting/

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
A while back, I ran into a situation where I was trying to use the calculated columns feature in SharePoint 2013 to do some simple math using values in two lists. Between certain data types not being accessible, and also with trying to make a one to…
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…
Suggested Courses

564 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