Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Help With A Calculation

Reply
Thread Tools

Help With A Calculation

 
 
Michael Hagstrom
Guest
Posts: n/a
 
      09-24-2003
Good Day -

I have written a form which collects input for a fare calculation. The form
collects the following:

1) Departure or Destination Group (1,2,or 3)
2) Number of Adults
3) Number of Children aged 4 to 12
4) Number of Children under age 4

Based on this data, I need to calculate a fare as follows:

1) The base fare is $80.00, $70.00 or $60.00 per person, depending on which
Departure/Destination Group is selected. If there is more than one adult,
all adults after the first one receive a 40% discount.

2) The rate per Child 4 - 12 is one have the base fare per child.

3) Children under 4 are free.

The following is the form and the Javascript, but I cannot get it to work.

Any help or suggestions would be truly appreciated.

Mike Hagstrom

************************************************** **************************
*
<form name="quote">
<table width="500" border="2" cellspacing="2" cellpadding="2"
align="CENTER">

<tr><td>Select Your Group:&nbsp;</td><td>Key West Group&nbsp;<input
type="Radio" name="Group" value="1"><br>Lower Keys Group&nbsp;<input
type="Radio" name="Group" value="2"><br>Middle/Upper Keys Group&nbsp;<input
type="Radio" name="Group" value="3"></td></tr>

<tr><td>Number of Adults:&nbsp;</td><td><INPUT NAME="Adults" SIZE=5
MAXLENGTH=50></td></tr>

<tr><td>Number Children 4-12 yrs:&nbsp;</td><td><INPUT NAME="Chil412"
SIZE=5 MAXLENGTH=50></td></tr>

<tr><td>Number Children Under 4 yrs:&nbsp;</td><td><INPUT NAME="ChilU4"
SIZE=5 MAXLENGTH=50></td></tr>

<tr><td ><input type=button value="Calculate"
onClick="calculate()"></td></tr>

<tr><td>Total Passengers:</td><td><input type=text name=totalpass
size=12></td></tr>

<tr><td>Your Fare:</td><td><input type=text name=totalfare
size=12></td></tr>


</table>
</form>
<script type=text/javascript>
function calculate() {
if (document.quote.Group.value = 1)
then Var farepp = 80;
else if (document.quote.Group.value = 2)
then Var farepp = 70;
else Var farepp = 60;

var Adults = document.quote.Adults.value;
var Chil412 = document.quote.Chil412.value;
var ChilU4 = document.quote.ChilU4.value;
var totalpass = Math.pow(Adults+Chil412+ChiU4);
var totalfare = Math.pow((farepp*Adults)+(Chil412*farepp/2));


document.quote.totalpass.value="";
document.quote.totalfare.value="";

}

</script>


 
Reply With Quote
 
 
 
 
KC Wong
Guest
Posts: n/a
 
      09-24-2003
> I have written a form which collects input for a fare calculation. The
form
> collects the following:


<snip assignment>

> The following is the form and the Javascript, but I cannot get it to work.


That's not good enough... next time state clearly:
1. What results do you expect
2. What incorrect results you're getting

I'll give you some hints below.

> <script type=text/javascript>
> function calculate() {
> if (document.quote.Group.value = 1)
> then Var farepp = 80;
> else if (document.quote.Group.value = 2)
> then Var farepp = 70;
> else Var farepp = 60;


1. JavaScript does not have a "then" keyword.
2. JavaScript, while loosely typed, are case-sensitive.
3. Scope rules: What scope do you want fareapp to be in?

> var Adults = document.quote.Adults.value;
> var Chil412 = document.quote.Chil412.value;
> var ChilU4 = document.quote.ChilU4.value;
> var totalpass = Math.pow(Adults+Chil412+ChiU4);
> var totalfare = Math.pow((farepp*Adults)+(Chil412*farepp/2));


There's a typo in one of the above lines... should be obvious when you see
the error message.

> document.quote.totalpass.value="";
> document.quote.totalfare.value="";
> }
> </script>


You want to display the results, right? Then you shouldn't assign empty
strings to the fields here.

BTW the calculation is incorrect too... results in NaN. I'll leave that part
for you to fix... it looks like a "squish-the-bugs" kind of assignment to
me.


KC


 
Reply With Quote
 
 
 
 
Michael Hagstrom
Guest
Posts: n/a
 
      09-24-2003
KC -

Thanks for your input.

Based on your comments, I edited the script to remove the conditionals on
the "farepp" and set it static at 80. I've set the math to only calculate
the full fare without a discount.

I also cleaned up the typing and now I receive no error messages, but the
script returns nothing.

Here's the script as modified:
**********************************************
<script type=text/javascript>
function calculate() {

var farepp = 80;
var Adults = document.quote.Adults.value;
var Chil412 = document.quote.Chil412.value;
var ChilU4 = document.quote.ChilU4.value;
var totalfare = Math.pow((farepp*Adults)+(farepp*Chil412/2));
var totalpass = Math.pow(Adults+Chil412+ChilU4);

if (!isNaN(totalfare) &&
(totalfare != Number.POSITIVE_INFINITY) &&
(totalfare != Number.NEGATIVE_INFINITY)) {
document.quote.totalfare.value=Math.round(totalfar e);
document.quote.totalpass.value=Math.round(totalpas s);
}
else {
document.quote.totalfare.value="";
document.quote.totalpass.value="";
}

}
function round(totalfare) {return Math.round(totalfare *100)/100;}
</script>
************************************************** **************************
*
Am I missing something obvious here?

Thanks for any more help or suggestions.

Mike

"KC Wong" <(E-Mail Removed)> wrote in message
news:bkrnp2$506v1$(E-Mail Removed)-berlin.de...
> > I have written a form which collects input for a fare calculation. The

> form
> > collects the following:

>
> <snip assignment>
>
> > The following is the form and the Javascript, but I cannot get it to

work.
>
> That's not good enough... next time state clearly:
> 1. What results do you expect
> 2. What incorrect results you're getting
>
> I'll give you some hints below.
>
> > <script type=text/javascript>
> > function calculate() {
> > if (document.quote.Group.value = 1)
> > then Var farepp = 80;
> > else if (document.quote.Group.value = 2)
> > then Var farepp = 70;
> > else Var farepp = 60;

>
> 1. JavaScript does not have a "then" keyword.
> 2. JavaScript, while loosely typed, are case-sensitive.
> 3. Scope rules: What scope do you want fareapp to be in?
>
> > var Adults = document.quote.Adults.value;
> > var Chil412 = document.quote.Chil412.value;
> > var ChilU4 = document.quote.ChilU4.value;
> > var totalpass = Math.pow(Adults+Chil412+ChiU4);
> > var totalfare = Math.pow((farepp*Adults)+(Chil412*farepp/2));

>
> There's a typo in one of the above lines... should be obvious when you see
> the error message.
>
> > document.quote.totalpass.value="";
> > document.quote.totalfare.value="";
> > }
> > </script>

>
> You want to display the results, right? Then you shouldn't assign empty
> strings to the fields here.
>
> BTW the calculation is incorrect too... results in NaN. I'll leave that

part
> for you to fix... it looks like a "squish-the-bugs" kind of assignment to
> me.
>
>
> KC
>
>



 
Reply With Quote
 
Dr John Stockton
Guest
Posts: n/a
 
      09-24-2003
JRS: In article <Laecb.22204$(E-Mail Removed)>, seen in
news:comp.lang.javascript, Michael Hagstrom <(E-Mail Removed)>
posted at Wed, 24 Sep 2003 06:18:21 :-

Before writing programs using maths, learn some math; before writing
code using a system function, discover what it does.

> var totalfare = Math.pow((farepp*Adults)+(farepp*Chil412/2));
> var totalpass = Math.pow(Adults+Chil412+ChilU4);


>function round(totalfare) {return Math.round(totalfare *100)/100;}


That rounds a number to a number. You will want to round a number to a
string with two decimals.

>Am I missing something obvious here?


Yes : the FAQ, including how to reply in News and other matters.


>"KC Wong" <(E-Mail Removed)> wrote in message
>news:bkrnp2$506v1$(E-Mail Removed)-berlin.de...



--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4
<URL:http://jibbering.com/faq/> Jim Ley's FAQ for news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> JS maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/JS/&c., FAQ topics, links.
 
Reply With Quote
 
Michael Hagstrom
Guest
Posts: n/a
 
      09-26-2003
Thanks for all your input -

I got the script working fine.

Sorry about using the Math.pow system function - I had taken it from another
piece of code I had written earlier, and forgot to remove it from my
example.

Thank you again.

Oh, yes - my math is just fine, and my name is
Dr. Michael Hagstrom - Catholic University of America, 1969



"Dr John Stockton" <(E-Mail Removed)> wrote in message
news:fF5rNUE+qdc$(E-Mail Removed)...
> JRS: In article <Laecb.22204$(E-Mail Removed)>, seen in
> news:comp.lang.javascript, Michael Hagstrom <(E-Mail Removed)>
> posted at Wed, 24 Sep 2003 06:18:21 :-
>
> Before writing programs using maths, learn some math; before writing
> code using a system function, discover what it does.
>
> > var totalfare = Math.pow((farepp*Adults)+(farepp*Chil412/2));
> > var totalpass = Math.pow(Adults+Chil412+ChilU4);

>
> >function round(totalfare) {return Math.round(totalfare *100)/100;}

>
> That rounds a number to a number. You will want to round a number to a
> string with two decimals.
>
> >Am I missing something obvious here?

>
> Yes : the FAQ, including how to reply in News and other matters.
>
>
> >"KC Wong" <(E-Mail Removed)> wrote in message
> >news:bkrnp2$506v1$(E-Mail Removed)-berlin.de...

>
>
> --
> John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE

4
> <URL:http://jibbering.com/faq/> Jim Ley's FAQ for

news:comp.lang.javascript
> <URL:http://www.merlyn.demon.co.uk/js-index.htm> JS maths, dates,

sources.
> <URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/JS/&c., FAQ topics,

links.


 
Reply With Quote
 
Dr John Stockton
Guest
Posts: n/a
 
      09-28-2003
JRS: In article <ql2db.27104$(E-Mail Removed)>, seen in
news:comp.lang.javascript, Michael Hagstrom <(E-Mail Removed)>
posted at Fri, 26 Sep 2003 17:39:58 :-

>Oh, yes - my math is just fine, and my name is
>Dr. Michael Hagstrom - Catholic University of America, 1969


You seem to be a slow learner. Read the newsgroup FAQ, and try to learn
about the proper, considerate formatting of news replies. If that's not
enough, see the references below.

>"Dr John Stockton" <(E-Mail Removed)> wrote in message
>news:fF5rNUE+qdc$(E-Mail Removed)...
>> JRS: In article <Laecb.22204$(E-Mail Removed)>, seen in
>> news:comp.lang.javascript, Michael Hagstrom <(E-Mail Removed)>
>> posted at Wed, 24 Sep 2003 06:18:21 :-


>> >Am I missing something obvious here?

>>
>> Yes : the FAQ, including how to reply in News and other matters.


>> --
>> John
>> ...


--
John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 MIME
Web <URL:http://www.uwasa.fi/~ts/http/tsfaq.html> -> Timo Salmi: Usenet Q&A.
Web <URL:http://www.merlyn.demon.co.uk/news-use.htm> : about usage of News.
No Encoding. Quotes before replies. Snip well. Write clearly. Don't Mail News.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Help with calculation basicnet ASP .Net 3 03-02-2006 02:41 PM
Need help With Discount Calculation!! =?Utf-8?B?U2ltbw==?= ASP .Net 7 11-05-2005 05:59 PM
Cost Calculation Function With Parsed Numbers to Currency: Need Help Combining Functions Neredbojias HTML 3 10-04-2005 12:55 AM
Need help on Math Calculation with Java Ding Lei Java 9 06-25-2004 06:04 PM
Help I'm stuck on a reverse polish calculation ron Java 1 07-02-2003 04:43 PM



Advertisments