...

View Full Version : Mosteller formula confusion

axel22
11-09-2012, 04:58 AM
Im trying to figure out/understand about multiple RETURN functions. But, I cant execute my function.

function SqFeetToSqMeters(sqFeet)
{
var sqMeters;
sqMeters = sqFeet/10.764;
return sqMeters;
}

function PoundsToKilograms(pounds)

{
var kg;
kg = pounds/2.205;
return kg;
}
//
function CentimetersToInches(cm)

{ var inches;
inches = cm / 2.54;
return inches; }

function HEIGHT(surface, weight)
{var surface = 'sqMeter';
var weight = 'kg';
height = Math.pow(surface, 2) * 3600) / weight);
return height;
}
function FINDHEIGHT()
{
var surface, weight, height;
surface= parseFloat(document.getElementById('SBox').value);
weight = parseFloat(document.getElementById('WBox').value);
height= Math.round(HEIGHT(surface,weight));
document.getElementById('HBox').value = height;
document.getElementById('outputDiv').innerHTML= str1.concat(height);

}
</script>
<body>
<h2>Using the Mosteller formula to calculate the height from the body Surface and Weight</h2>
<p>
surface: <input type="text" id="SBox" size=4 value=19.45> sq ft.<br>
weight: <input type="text" id="WBox" size=4 value=150> pounds<br>
height(calculated): <input type="text" id="HBox" size=4 value=0> inches<br>
<input type="button" value="calculate the height" onclick="FINDHEIGHT();">
</p>
<hr>
<div id="outputDiv"></div>
</body>
</html>
</html>

Old Pedant
11-09-2012, 05:25 AM
What is the question here?

This part of your code makes no sense at all:

var surface = ('sqMeter');
var weight = ('kg');
height = Math.round(surface * surface) * 3600) / weight);

How can you multiply 'sqMeter' * 'sqMeter' and then divide by 'kg'???

Old Pedant
11-09-2012, 05:27 AM
If you think you were magically converting surface from square feet to square meters, you weren't

All you were doing was assigning the *STRING* 'sqMeter' to the variable.

Just incidentally wiping out the value of surface that was passed into the function.

axel22
11-09-2012, 05:58 AM
the whole point is to find HEIGHT by the representing values of surface and height from being passed from (surface) sqFt to sqMeters and (weight) passed from lbs to kgs using the Height formula which will use the previous functions to calculate height into inches.

Philip M
11-09-2012, 07:15 AM
the whole point is to find HEIGHT by the representing values of surface and height from being passed from (surface) sqFt to sqMeters and (weight) passed from lbs to kgs using the Height formula which will use the previous functions to calculate height into inches.

Clear as mud! Can you explain further and/or give an example? And be clearer as to what your question actually is?

You do not call your functions function SqFeetToSqMeters(sqFeet)
and so on anywhere.

Old Pedant
11-09-2012, 07:19 AM
Yes?

And you *HAVE* a function there that will convert square feet to square meters:

function SqFeetToSqMeters(sqFeet)
{
var sqMeters;
sqMeters = sqFeet/10.764;
return sqMeters;
}

But you never use it.

Instead, you just change surface from a number into a string.

Old Pedant
11-09-2012, 07:24 AM
Most of the code looks right.

It's just these two lines that are total hash:

var surface = 'sqMeter';
var weight = 'kg';

surface = someConversoinOf( surface );
weight = someConversionOf( weight );

You get to figure out what someConversionOf needs to be.

Notice that I did *NOT* use var there. That *IS* important.

Philip M
11-09-2012, 07:55 AM
I now find that the Mostella formula calculates body surface area from height and weight for medication doses. But the OP's script seems to calculate the subject's height from his weight and body surface area. That can't be right. :confused:

The formula is

BSA (m²) = ( [Height(cm) x Weight(kg) ]/ 3600 )½ e.g. BSA = SQRT( (cm*kg)/3600 )

or in inches and pounds: BSA (m²) = ( [Height(in) x Weight(lbs) ]/ 3131 )½

Given that the data can be input as Metric or Imperial I don't see the point of converting the units.

Note. My doctor tells me that I am exactly the correct weight - for a man 2.4 metres tall.

Old Pedant
11-09-2012, 09:02 PM
Note. My doctor tells me that I am exactly the correct weight - for a man 2.4 metres tall.

LOL! Boy, do I know that story! I'm not quite that bad, but close. (Would you believe we took a week long trip to Hawaii and I *lost* 8 pounds during the trip? And haven't gained it back. Woo hoo!)

(But I thought you were a doctor? Are you telling yourself that?)

Philip M
11-10-2012, 07:24 AM
LOL! Boy, do I know that story! I'm not quite that bad, but close. (Would you believe we took a week long trip to Hawaii and I *lost* 8 pounds during the trip? And haven't gained it back. Woo hoo!)

(But I thought you were a doctor? Are you telling yourself that?)

What gave you that idea? My formal qualifications are in law and accountancy, but I claim expertise in logistics and (some) computing also.

Old Pedant
11-10-2012, 08:26 PM
Huh...I thought I looked up your location with Google once upon a time and street view showed it to be a physicians office. Was over a year ago, so I don't remember the details or where I found the address. Likely was a bogus address and/or a shared office or some such?

Philip M
11-10-2012, 09:00 PM
Huh...I thought I looked up your location with Google once upon a time and street view showed it to be a physicians office. Was over a year ago, so I don't remember the details or where I found the address. Likely was a bogus address and/or a shared office or some such?

You were thinking perhaps of

Kilmeny Group Medical Practice
Kilmeny Surgery
Ingrow
Keighley
BD21 1LA

That is not me!

axel22
11-10-2012, 11:25 PM
is that Math.pow() function even being used correctly?

Old Pedant
11-11-2012, 10:19 PM
is that Math.pow() function even being used correctly?

If you mean in this code:

Math.pow(surface, 2)

then sure. That's fine. (It's also slower than simply doing surface * surface but that's a detail.

Old Pedant
11-11-2012, 10:20 PM
Philip: Yes! That's the one. Been so long ago I don't remember even where I got that from.