Difference between revisions of "Category:LSL Integer"

From Second Life Wiki
Jump to navigation Jump to search
(More decimal string validations)
m (Replaced old <LSL> block with <source lang="lsl2">)
Line 9: Line 9:
==Examples==
==Examples==
All of the following are integers:
All of the following are integers:
<lsl>integer firstInt = 5512623;
<source lang="lsl2">integer firstInt = 5512623;
integer secondInt = ACTIVE;
integer secondInt = ACTIVE;
integer thirdInt = 0x61EC1A;
integer thirdInt = 0x61EC1A;
integer fourthInt = -160693;</lsl>
integer fourthInt = -160693;</source>


The following are NOT integers, use {{LSLG|float}} for them:
The following are NOT integers, use {{LSLG|float}} for them:
<lsl>
<source lang="lsl2">
integer decimalValue = 125.2; // ERROR : Type mismatch -- Integer literals can't have a decimal.
integer decimalValue = 125.2; // ERROR : Type mismatch -- Integer literals can't have a decimal.
integer bigValue = 3147483647; // An undocumented way to say -1,147,483,649 // Integer literals can't be larger than 2,147,483,647.
integer bigValue = 3147483647; // An undocumented way to say -1,147,483,649 // Integer literals can't be larger than 2,147,483,647.
integer biggerValue = 10123456789; // An undocumented way to say -1 // Integer literals can't be larger than 2,147,483,647.
integer biggerValue = 10123456789; // An undocumented way to say -1 // Integer literals can't be larger than 2,147,483,647.
</lsl>
</source>


The following function can be used to determine whether a string of characters consists only of integers. This can be important if you need to know that a user has entered a valid integer in chat or a textbox, for example.
The following function can be used to determine whether a string of characters consists only of integers. This can be important if you need to know that a user has entered a valid integer in chat or a textbox, for example.
<lsl>
<source lang="lsl2">
integer IsInteger(string var)
integer IsInteger(string var)
{
{
Line 34: Line 34:
     }
     }
     return TRUE;
     return TRUE;
}</lsl>
}</source>


Here's a simpler solution for strings containing positive or negative decimal integers (values from −2147483648 and 2147483647 written without + sign, leading zeros, or thousands separators ',' ). Omei Qunhua.
Here's a simpler solution for strings containing positive or negative decimal integers (values from −2147483648 and 2147483647 written without + sign, leading zeros, or thousands separators ',' ). Omei Qunhua.


<lsl>
<source lang="lsl2">
     if ( (string) ( (integer) data) == data)
     if ( (string) ( (integer) data) == data)
         llOwnerSay("'" + data + "' contains a valid integer");
         llOwnerSay("'" + data + "' contains a valid integer");
</lsl>
</source>


The following examples will validate that a string contains only the characters 0 though 9. Omei Qunhua.
The following examples will validate that a string contains only the characters 0 though 9. Omei Qunhua.


a) Example for a string of length 5
a) Example for a string of length 5
<lsl>
<source lang="lsl2">
     StringOf5Dec(string test)
     StringOf5Dec(string test)
     {
     {
         return ( (integer) ("1" + test) >= 100000);
         return ( (integer) ("1" + test) >= 100000);
     }
     }
</lsl>
</source>


b) Example for a string of length 1 through 9
b) Example for a string of length 1 through 9
<lsl>
<source lang="lsl2">
     VarStringIsDecimal(string test)
     VarStringIsDecimal(string test)
     {
     {
Line 60: Line 60:
         return ( (integer) ("1" + test) >= limit);
         return ( (integer) ("1" + test) >= limit);
     }
     }
</lsl>
</source>




==Further Reading==
==Further Reading==
For a more extensive coverage of integers, including the different ways they are used in LSL, see [[LSL_101/LSL_in_Focus:_Integers|LSL in Focus: Integers]].
For a more extensive coverage of integers, including the different ways they are used in LSL, see [[LSL_101/LSL_in_Focus:_Integers|LSL in Focus: Integers]].

Revision as of 02:50, 22 January 2015

Integers

The integer data type is a signed 32 bit value between −2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex). Integers are whole numbers. The fractional datatype is the float.

DEBUG_CHANNEL can be used as a constant for the maximum integer (for that is the value it is defined as).

Examples

All of the following are integers:

integer firstInt = 5512623;
integer secondInt = ACTIVE;
integer thirdInt = 0x61EC1A;
integer fourthInt = -160693;

The following are NOT integers, use float for them:

integer decimalValue = 125.2; // ERROR : Type mismatch -- Integer literals can't have a decimal.
integer bigValue = 3147483647; // An undocumented way to say -1,147,483,649 // Integer literals can't be larger than 2,147,483,647.
integer biggerValue = 10123456789; // An undocumented way to say -1 // Integer literals can't be larger than 2,147,483,647.

The following function can be used to determine whether a string of characters consists only of integers. This can be important if you need to know that a user has entered a valid integer in chat or a textbox, for example.

integer IsInteger(string var)
{
    integer i;
    for (i=0;i<llStringLength(var);++i)
    {
        if(!~llListFindList(["1","2","3","4","5","6","7","8","9","0"],[llGetSubString(var,i,i)]))
        {
            return FALSE;
        }
    }
    return TRUE;
}

Here's a simpler solution for strings containing positive or negative decimal integers (values from −2147483648 and 2147483647 written without + sign, leading zeros, or thousands separators ',' ). Omei Qunhua.

    if ( (string) ( (integer) data) == data)
        llOwnerSay("'" + data + "' contains a valid integer");

The following examples will validate that a string contains only the characters 0 though 9. Omei Qunhua.

a) Example for a string of length 5

    StringOf5Dec(string test)
    {
        return ( (integer) ("1" + test) >= 100000);
    }

b) Example for a string of length 1 through 9

    VarStringIsDecimal(string test)
    {
        integer limit = (integer) llPow(10.0, llStringLength(test) );
        return ( (integer) ("1" + test) >= limit);
    }


Further Reading

For a more extensive coverage of integers, including the different ways they are used in LSL, see LSL in Focus: Integers.

Pages in category "LSL Integer"

The following 200 pages are in this category, out of 641 total.

(previous page) (next page)
(previous page) (next page)