# Meter2Feet

 LSL Portal

## Function: string Meter2Feet(float meter);

Returns a string of metric value meter converted to feet/inch in common representation, ie. 3' 4 5/16".

 • float meter – distance in meters, any valid float, positive or negative

## Specification

```string Meter2Feet( float meter )
{
string sign = "";
if (meter < 0)
{    // Use only positive value to simplify the maths
sign = "-";
meter = -meter;
}

// Compute feet multiplying by reciprocal value of
//  conversion constant 0.3048 for performance reasons
float fraction = meter * 3.2808398950131233595800524934383;
integer feet = (integer)fraction;

fraction = (fraction - feet) * 12;    // Compute inches
integer inches = (integer)fraction;

fraction = llRound((fraction - inches) * 16);    // Compute 1/16 inches

string strFraction = "\"";
if (fraction != 0)    // show fraction value only if not zero
strFraction = " " + (string)((integer)fraction) + "/16" + strFraction;

return (sign + (string)feet + "' " + (string)inches + strFraction);
}```

## Example

Trivial example to listen to any chat from the object owner for meter values and respond feet/inch value.

```// Insert code of Meter2Feet user function here

default
{
state_entry()
{
llOwnerSay("Enter: [m]");
llListen(0, "", llGetOwner(), "");
}

listen(integer _chan, string _str, key _id, string _msg)
{
float meter = (float)_msg;
llOwnerSay(Meter2Feet(meter));
}
}```