Category:LSL Integer
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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);
}
This function should validate any decimal integer, with or without signs or leading zeroes, and with leading/trailing space but does not accept thousands separators. (Phil Metalhead)
integer uIsInteger(string input)
{
input = llStringTrim(input,STRING_TRIM); // remove leading/trailing whitespace
// "+123" is a valid integer string but would otherwise fail, so strip leading "+" if it's there
if (llGetSubString(input,0,0) == "+") input = llGetSubString(input,1,-1);
return ((string)((integer)input) == input);
}
Test cases for the above function (click "Expand" link on the right side of the page):
///////////////
// Returns 1 // (leading and trailing whitespace)
2352316
///////////////
// Returns 1 // (leading "+")
+151613662
///////////////
// Returns 1 // (negative number)
-263163626
///////////////
// Returns 1 // (largest positive integer)
2147483647
///////////////
// Returns 1 // (largest negative integer)
-2147483648
///////////////
// Returns 1 // (largest positive integer with leading and trailing whitespace, and leading "+")
+2147483647
///////////////
// Returns 0 // (contains letters)
161362stuff
///////////////
// Returns 0 // (number is a float, not an integer -- contains "." in string)
123.4
///////////////
// Returns 0 // (whitespace in middle of string)
2347
9089
///////////////
// Returns 0 // (contains thousands separator ",")
844,241
// Returns 0 // ("+" in middle of string)
2378+87668
///////////////
// Returns 0 // ("-" in middle of string)
3462098-12
// Returns 0 // (number > 2147483647)
2147483648
///////////////
// Returns 0 // (number < -2147483648)
-2147483649
///////////////
Further Reading
For a more extensive coverage of integers, including the different ways they are used in LSL, see LSL in Focus: Integers.
Subcategories
This category has the following 19 subcategories, out of 19 total.
I
Pages in category "LSL Integer"
The following 183 pages are in this category, out of 640 total.
(previous page) (next page)P
- PRIM PHYSICS SHAPE CONVEX
- PRIM PHYSICS SHAPE NONE
- PRIM PHYSICS SHAPE PRIM
- PRIM PHYSICS SHAPE TYPE
- PRIM POINT LIGHT
- PRIM POSITION
- PRIM POS LOCAL
- PRIM PROJECTOR
- PRIM REFLECTION PROBE
- PRIM REFLECTION PROBE BOX
- PRIM REFLECTION PROBE DYNAMIC
- PRIM RENDER MATERIAL
- PRIM ROTATION
- PRIM ROT LOCAL
- PRIM SCRIPTED SIT ONLY
- PRIM SCULPT FLAG ANIMESH
- PRIM SCULPT FLAG INVERT
- PRIM SCULPT FLAG MIRROR
- PRIM SCULPT TYPE CYLINDER
- PRIM SCULPT TYPE MASK
- PRIM SCULPT TYPE MESH
- PRIM SCULPT TYPE PLANE
- PRIM SCULPT TYPE SPHERE
- PRIM SCULPT TYPE TORUS
- PRIM SHINY HIGH
- PRIM SHINY LOW
- PRIM SHINY MEDIUM
- PRIM SHINY NONE
- PRIM SIT TARGET
- PRIM SIZE
- PRIM SLICE
- PRIM SPECULAR
- PRIM TEMP ON REZ
- PRIM TEXGEN
- PRIM TEXGEN DEFAULT
- PRIM TEXGEN PLANAR
- PRIM TEXT
- PRIM TEXTURE
- PRIM TYPE
- PRIM TYPE BOX
- PRIM TYPE CYLINDER
- PRIM TYPE PRISM
- PRIM TYPE RING
- PRIM TYPE SCULPT
- PRIM TYPE SPHERE
- PRIM TYPE TORUS
- PRIM TYPE TUBE
- PROFILE NONE
- PROFILE SCRIPT MEMORY
- PUBLIC CHANNEL
R
- RCERR CAST TIME EXCEEDED
- RCERR SIM PERF LOW
- RCERR UNKNOWN
- RC DATA FLAGS
- RC DETECT PHANTOM
- RC GET LINK NUM
- RC GET NORMAL
- RC GET ROOT KEY
- RC MAX HITS
- RC REJECT AGENTS
- RC REJECT LAND
- RC REJECT NONPHYSICAL
- RC REJECT PHYSICAL
- RC REJECT TYPES
- REGION FLAG ALLOW DAMAGE
- REGION FLAG ALLOW DIRECT TELEPORT
- REGION FLAG BLOCK FLY
- REGION FLAG BLOCK TERRAFORM
- REGION FLAG DISABLE COLLISIONS
- REGION FLAG DISABLE PHYSICS
- REGION FLAG FIXED SUN
- REGION FLAG RESTRICT PUSHOBJECT
- REGION FLAG SANDBOX
- REMOTE DATA CHANNEL
- REMOTE DATA REPLY
- REMOTE DATA REQUEST
- REVERSE
- ROTATE
S
- SCALE
- SCRIPTED
- SIM STAT ACTIVE SCRIPT COUNT
- SIM STAT AGENT COUNT
- SIM STAT AGENT MS
- SIM STAT AGENT UPDATES
- SIM STAT AI MS
- SIM STAT ASSET DOWNLOADS
- SIM STAT ASSET UPLOADS
- SIM STAT CHILD AGENT COUNT
- SIM STAT FRAME MS
- SIM STAT IMAGE MS
- SIM STAT IO PUMP MS
- SIM STAT NET MS
- SIM STAT OTHER MS
- SIM STAT PACKETS IN
- SIM STAT PACKETS OUT
- SIM STAT PCT CHARS STEPPED
- SIM STAT PHYSICS FPS
- SIM STAT PHYSICS MS
- SIM STAT PHYSICS OTHER MS
- SIM STAT PHYSICS SHAPE MS
- SIM STAT PHYSICS STEP MS
- SIM STAT SCRIPT EPS
- SIM STAT SCRIPT MS
- SIM STAT SCRIPT RUN PCT
- SIM STAT SLEEP MS
- SIM STAT SPARE MS
- SIM STAT UNACKED BYTES
- SMOOTH
- STATUS BLOCK GRAB
- STATUS BLOCK GRAB OBJECT
- STATUS BOUNDS ERROR
- STATUS CAST SHADOWS
- STATUS DIE AT EDGE
- STATUS DIE AT NO ENTRY
- STATUS INTERNAL ERROR
- STATUS MALFORMED PARAMS
- STATUS NOT FOUND
- STATUS NOT SUPPORTED
- STATUS OK
- STATUS PHANTOM
- STATUS PHYSICS
- STATUS RETURN AT EDGE
- STATUS ROTATE X
- STATUS ROTATE Y
- STATUS ROTATE Z
- STATUS SANDBOX
- STATUS TYPE MISMATCH
- STATUS WHITELIST FAILED
- STRING TRIM
- STRING TRIM HEAD
- STRING TRIM TAIL
T
V
- VEHICLE FLAG NO FLY UP
- VEHICLE ANGULAR DEFLECTION EFFICIENCY
- VEHICLE ANGULAR DEFLECTION TIMESCALE
- VEHICLE ANGULAR FRICTION TIMESCALE
- VEHICLE ANGULAR MOTOR DECAY TIMESCALE
- VEHICLE ANGULAR MOTOR DIRECTION
- VEHICLE ANGULAR MOTOR TIMESCALE
- VEHICLE BANKING EFFICIENCY
- VEHICLE BANKING MIX
- VEHICLE BANKING TIMESCALE
- VEHICLE BUOYANCY
- VEHICLE FLAG CAMERA DECOUPLED
- VEHICLE FLAG HOVER GLOBAL HEIGHT
- VEHICLE FLAG HOVER TERRAIN ONLY
- VEHICLE FLAG HOVER UP ONLY
- VEHICLE FLAG HOVER WATER ONLY
- VEHICLE FLAG LIMIT MOTOR UP
- VEHICLE FLAG LIMIT ROLL ONLY
- VEHICLE FLAG MOUSELOOK BANK
- VEHICLE FLAG MOUSELOOK STEER
- VEHICLE FLAG NO DEFLECTION UP
- VEHICLE HOVER EFFICIENCY
- VEHICLE HOVER HEIGHT
- VEHICLE HOVER TIMESCALE
- VEHICLE LINEAR DEFLECTION EFFICIENCY
- VEHICLE LINEAR DEFLECTION TIMESCALE
- VEHICLE LINEAR FRICTION TIMESCALE
- VEHICLE LINEAR MOTOR DECAY TIMESCALE
- VEHICLE LINEAR MOTOR DIRECTION
- VEHICLE LINEAR MOTOR OFFSET
- VEHICLE LINEAR MOTOR TIMESCALE
- VEHICLE REFERENCE FRAME
- VEHICLE TYPE AIRPLANE
- VEHICLE TYPE BALLOON
- VEHICLE TYPE BOAT
- VEHICLE TYPE CAR
- VEHICLE TYPE NONE
- VEHICLE TYPE SLED
- VEHICLE VERTICAL ATTRACTION EFFICIENCY
- VEHICLE VERTICAL ATTRACTION TIMESCALE
- VERTICAL