473,704 Members | 2,408 Online

# Need help with rounding on a calculation

Hi, I am a newbie with Javascript. I am trying to build a simple form that
calculates the cost of gasoline for a trip.

It simply divides the trip distance by the mpg and multiplies that by the
current per gallon price.

It works, fine except I want to round the number to two decimals ( 64.16,
not 64.166666666)

Any help is greatly appreciated. Here is what I have so far. I tried to
use the toFixed(2), but couldn't figure out where to put it.

<title></title>
<script type="text/javascript">
function calcTripCost(){
var a = document.getEle mentById('perGa llon');
var b = document.getEle mentById('tripD istance');
var c = document.getEle mentById('mpg') ;
var d = document.getEle mentById('tripC ost');
var perGallon = parseFloat (a.value);
var tripDistance = parseFloat (b.value);
var mpg = parseFloat (c.value);
var tripCost = parseFloat (d.value);
d.value = tripDistance/mpg*perGallon;

}
</script>
<body>
Price per gallon of gas: <input type="text" id="perGallon"
name="perGallon "
value="3.85" />&nbsp;&nbsp;
<br />
Trip distance in Miles: <input type="text" id="tripDistanc e"
name="tripDista nce"
value="300" /><br />
MPG for your vehicle: <input type="text" id="mpg" name="mpg" value="18"
/><br/><br/>
<input type="button" value="Calculat e" onclick="calcTr ipCost();" /<br
/>
Gas cost for your trip:&nbsp; \$ <input type="text" id="tripCost" />

</body>

Thank You, Larry

Jun 27 '08 #1
9 1512
On Apr 22, 8:06 pm, "Verizon News Server" <anonymous@no_s pam.info>
wrote:
Hi, I am a newbie with Javascript. I am trying to build a simple form that
calculates the cost of gasoline for a trip.

It simply divides the trip distance by the mpg and multiplies that by the
current per gallon price.

It works, fine except I want to round the number to two decimals ( 64.16,
not 64.166666666)

Any help is greatly appreciated. Here is what I have so far. I tried to
use the toFixed(2), but couldn't figure out where to put it.

<title></title>
<script type="text/javascript">
function calcTripCost(){
var a = document.getEle mentById('perGa llon');
var b = document.getEle mentById('tripD istance');
var c = document.getEle mentById('mpg') ;
var d = document.getEle mentById('tripC ost');
var perGallon = parseFloat (a.value);
var tripDistance = parseFloat (b.value);
var mpg = parseFloat (c.value);
var tripCost = parseFloat (d.value);
d.value = tripDistance/mpg*perGallon;

}
</script>
<body>
Price per gallon of gas: <input type="text" id="perGallon"
name="perGallon "
value="3.85" />&nbsp;&nbsp;
<br />
Trip distance in Miles: <input type="text" id="tripDistanc e"
name="tripDista nce"
value="300" /><br />
MPG for your vehicle: <input type="text" id="mpg" name="mpg" value="18"
/><br/><br/>
<input type="button" value="Calculat e" onclick="calcTr ipCost();" /<br
/>
Gas cost for your trip:&nbsp; \$ <input type="text" id="tripCost" />

</body>

Thank You, Larry
Math.round(x * 100)/100

Jun 27 '08 #2
On Apr 23, 11:06 am, "Verizon News Server" <anonymous@no_s pam.info>
wrote:
Hi, I am a newbie with Javascript. I am trying to build a simple form that
calculates the cost of gasoline for a trip.

It simply divides the trip distance by the mpg and multiplies that by the
current per gallon price.

It works, fine except I want to round the number to two decimals ( 64.16,
not 64.166666666)

Any help is greatly appreciated.
The FAQ is good for that:

4.6 How do I convert a Number into a String with exactly 2 decimal
places?
<URL: http://www.jibbering.com/faq/#FAQ4_6 >

Here is what I have so far. I tried to
use the toFixed(2), but couldn't figure out where to put it.
Don't, it's broken in some implementations (see link above).
>
<title></title>
<script type="text/javascript">
function calcTripCost(){
var a = document.getEle mentById('perGa llon');
var b = document.getEle mentById('tripD istance');
var c = document.getEle mentById('mpg') ;
var d = document.getEle mentById('tripC ost');
var perGallon = parseFloat (a.value);
var tripDistance = parseFloat (b.value);
var mpg = parseFloat (c.value);
var tripCost = parseFloat (d.value);
d.value = tripDistance/mpg*perGallon;
You should test values before using them for arithmetic operations to
make sure they are numbers within a suitable range. At the very
least, check that mpg is not zero.
--
Rob
Jun 27 '08 #3
Thanks, Doug.

Admittedly, I am inept with javascript and in over my head on this simple
little project. I don't know how to integrate the math.round into my
script. Could you or someone help me place it where it needs to be?

Any helps is very appreciated. Thanks in advance.

Larry
"Doug Gunnoe" <do********@gma il.comwrote in message
On Apr 22, 8:06 pm, "Verizon News Server" <anonymous@no_s pam.info>
wrote:
>Hi, I am a newbie with Javascript. I am trying to build a simple form
that
calculates the cost of gasoline for a trip.

It simply divides the trip distance by the mpg and multiplies that by the
current per gallon price.

It works, fine except I want to round the number to two decimals ( 64.16,
not 64.166666666)

Any help is greatly appreciated. Here is what I have so far. I tried to
use the toFixed(2), but couldn't figure out where to put it.

<title></title>
<script type="text/javascript">
function calcTripCost(){
var a = document.getEle mentById('perGa llon');
var b = document.getEle mentById('tripD istance');
var c = document.getEle mentById('mpg') ;
var d = document.getEle mentById('tripC ost');
var perGallon = parseFloat (a.value);
var tripDistance = parseFloat (b.value);
var mpg = parseFloat (c.value);
var tripCost = parseFloat (d.value);
d.value = tripDistance/mpg*perGallon;

}
</script>
<body>
Price per gallon of gas: <input type="text" id="perGallon"
name="perGallo n"
value="3.85" />&nbsp;&nbsp;
<br />
Trip distance in Miles: <input type="text" id="tripDistanc e"
name="tripDist ance"
value="300" /><br />
MPG for your vehicle: <input type="text" id="mpg" name="mpg"
value="18"
/><br/><br/>
<input type="button" value="Calculat e" onclick="calcTr ipCost();" />
<br
/>
Gas cost for your trip:&nbsp; \$ <input type="text" id="tripCost" />

</body>

Thank You, Larry

Math.round(x * 100)/100

Jun 27 '08 #4
On Apr 23, 9:33 am, "Larrythedesign er" <anonymous@no_s pam.infowrote:
Thanks, Doug.

Admittedly, I am inept with javascript and in over my head on this simple
little project. I don't know how to integrate the math.round into my
script. Could you or someone help me place it where it needs to be?

Any helps is very appreciated. Thanks in advance.

Larry
Sure. And you might want to check out what Rob was saying about
checking the values, etc. Like he says, you don't want to divide by
zero. Also, JavaScript can be tricky when doing stuff like this
because of converting values between strings and numbers. But I see
you were using the parseFloat function so you seem to be headed in the
right direction in that regard.

Anyway, to your question, you would use it something like this

var tripcost = tripDistance/mpg*perGallon;
d.value = Math.round(trip cost * 100)/100;

Jun 27 '08 #5
Thank You Doug!

I appreciate your help. That did the trick. I am still learning and this
helped me understand some of what I learned.

Thanks, Larry
"Doug Gunnoe" <do********@gma il.comwrote in message
On Apr 23, 9:33 am, "Larrythedesign er" <anonymous@no_s pam.infowrote:
>Thanks, Doug.

Admittedly, I am inept with javascript and in over my head on this simple
little project. I don't know how to integrate the math.round into my
script. Could you or someone help me place it where it needs to be?

Any helps is very appreciated. Thanks in advance.

Larry

Sure. And you might want to check out what Rob was saying about
checking the values, etc. Like he says, you don't want to divide by
zero. Also, JavaScript can be tricky when doing stuff like this
because of converting values between strings and numbers. But I see
you were using the parseFloat function so you seem to be headed in the
right direction in that regard.

Anyway, to your question, you would use it something like this

var tripcost = tripDistance/mpg*perGallon;
d.value = Math.round(trip cost * 100)/100;

Jun 27 '08 #6
In comp.lang.javas cript message <898cd037-3c3d-4346-9d66-5725a1f22a31@i7
6g2000hsf.googl egroups.com>, Tue, 22 Apr 2008 20:18:20, Doug Gunnoe
<do********@gma il.composted:
>
Math.round(x * 100)/100

Those who fail to read the FAQ before posting commonly demonstrate
ineptness.

Evidently you have not considered the difference between rounding to a
multiple 0f 0.01 and rounding to two decimals. Currency outputs should
be rounded to the nearest penny or pound (or foreign equivalents), not
to the nearest florin (unless large, of course).

--
(c) John Stockton, nr London, UK. ?@merlyn.demon. co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demo n.co.uk/- FAQish topics, acronyms, & links.
Proper <= 4-line sig. separator as above, a line exactly "-- " (SonOfRFC1036)
Do not Mail News to me. Before a reply, quote with ">" or "" (SonOfRFC1036)
Jun 27 '08 #7
In comp.lang.javas cript message <8d195c89-548d-4486-8ef5-c04992bb57c4@34
g2000hsh.google groups.com>, Wed, 23 Apr 2008 12:30:31, Doug Gunnoe
<do********@gma il.composted:
But I see
you were using the parseFloat function so you seem to be headed in the
right direction in that regard.
Function parseFloat is not needed in that code. FAQ 4.21.

--
(c) John Stockton, nr London, UK. ?@merlyn.demon. co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demo n.co.uk/- FAQish topics, acronyms, & links.
Proper <= 4-line sig. separator as above, a line exactly "-- " (SonOfRFC1036)
Do not Mail News to me. Before a reply, quote with ">" or "" (SonOfRFC1036)
Jun 27 '08 #8
In comp.lang.javas cript message <653f34c9-01a2-4535-b296-7e41d21d52d1@e3
9g2000hsf.googl egroups.com>, Wed, 23 Apr 2008 19:11:02, Doug Gunnoe
<do********@gma il.composted:
>By the way, I will never, ever, ever, ever, never read the shitty FAQ.
Never. Never, ever, never.
Then, if you continue to post here what you naively think are answers,
you will continue to demonstrate your childish obstinacy, and it will
continue to be remarked upon.

Your mere ignorance and lack of understanding are not necessarily to be
ashamed of, provided that obvious steps to remedy them are promptly
taken.

--
(c) John Stockton, nr London UK. ??*@merlyn.demo n.co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demo n.co.uk/- FAQish topics, acronyms, & links.
Check boilerplate spelling -- error is a public sign of incompetence.
Never fully trust an article from a poster who gives no full real name.
Jun 27 '08 #9
On Apr 27, 7:52 am, Dr J R Stockton <j...@merlyn.de mon.co.ukwrote:
It was perfectly 'adequate' for the application, considering the
application.
You are either one of the subtler trolls,
I've been called worse
or too inexperienced to be of any real use.
Use for whom? For someone as smart as yourself, with such deep, low
level technical knowledge of JavaScript, I doubt that I would be of
any benefit. That being the case, please feel free to ignore all my
future posts.
A pointless remark. Those who, in that case, use parseFloat have only
made the obvious first step in their understanding.
Which was the only point I was making. If you ever get around to
reading the OP, he states several times that he is a n00b to
JavaScript.
You, it seems, choose to go no further.
I had no need to go any further. Like me, you didn't notice it the
first time you browsed through it either. It was only after I
ways to criticize my answer. (Oh, and you know it's true lol.)
Giving unsatisfactory answers when you could have left the matter to
those more capable is not nice; you get here what you therefore deserve.
If you will notice, Mr. Stockton, those more capable have still not

Evertjan wrote:
Don't take it hard, Doug, we are here to enjoy,
and Javascript, like chess, gives intellectual enjoyment.
It's cool, Evertjan. I don't mind being wrong. If I did my life would
be total misery.

Jun 27 '08 #10

This thread has been closed and replies have been disabled. Please start a new discussion.