LSL 101/Integers

From Second Life Wiki
< LSL 101
Revision as of 04:58, 29 September 2009 by Blueman Steele (talk | contribs)
Jump to navigation Jump to search
← Strings and Simple Output ↑̲  LSL 101  ̲↑ The touch_start Event →

Integers are another data type found in LSL along with Strings. LSL can handle whole numbers from −2,147,483,648 to +2,147,483,647. Integers can either be represented literally in a script or placed within a variable at runtime. Integers can use the following mathematial operations.

+ add - subtract

  • multiply

/ divide % modulus


To be able to print these numbers however, you'll need to typcast then into a string.


<lsl> default {

   state_entry()
   {
       llSay(0, (string)5 );
   }
  

} </lsl>

Why do we preface the number 5 with (string)? llSay is only expecting a string and will not be able to print a number without you typcasting it first. We can do the following.


<lsl> default {

   state_entry()
   {
       llSay(0, "5" );
   }
  

} </lsl>

In the example above, 5 is represented as a string so no typecasting is needed. However in this form it's not really the integer 5. If it's not an integer, you won't be able to perform math on the number. Here's an example where math is performed before printing.

<lsl> default {

   state_entry()
   {
       llSay(0, (string)(2+3) );
   }
  

} </lsl>

With some string concatenation you can combine two strings (including typecast numbers) to help label the output.

<lsl> default {

   state_entry()
   {
       llSay(0, "two plus three equals " + (string)(2 + 3) );
       llSay(0, "100 minus 1 equals " + (string)(100 - 1) );
       llSay(0, "5 times 5 equals " + (string)(5 * 5) );
       llSay(0, "six divides in twelve " + (string)(12 / 6) + " times." );
       llSay(0, "20 divided by 7 equals " + (string)(20 / 7) + " with a remainder of " + (string)(20 % 7));
   }
  

} </lsl>