Difference between revisions of "LlFloor"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(20 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{LSLFunctionAll
{{LSL_Function
|func=llFloor
|func=llFloor
|func_id=9
|func_id=9|func_sleep=0.0|func_energy=10.0
|func_sleep=0.0
|func_energy=10.0
|func_footnote
|func_footnote
|p1_type=float
|p1_type=float|p1_name=val|p1_desc=Any valid float value
|p1_name=val
|return_type=integer
|p1_desc=Any valid float value
|return_text=that is the integer value of {{LSLP|val}} rounded towards negative infinity <code>(return <= {{LSLPT|val}})</code>.
|p2_type|p2_name|p2_desc
|p3_type|p3_name|p3_desc
|p4_type|p4_name|p4_desc
|p5_type|p5_name|p5_desc
|p6_type|p6_name|p6_desc
|p7_type|p7_name|p7_desc
|p8_type|p8_name|p8_desc
|p9_type|p9_name|p9_desc
|p10_type|p10_name|p10_desc
|p11_type|p11_name|p11_desc
|p12_type|p12_name|p12_desc
|return_type=float
|return_text=that is the largest integer value less than or equal to val (return <= val).
|spec
|spec
|caveats
|caveats=
|examples=
* The returned value is -2147483648 (0x80000000) if the arithmetic result is outside of the range of valid integers (-2147483648 to 2147483647 inclusive).
<lsl>
|examples=<source lang="lsl2">default
default {
{
   state_entry()
   state_entry()
   {
   {
       llSay(0,"The floor value of -4.5 is: "+(string)llFloor(-4.5) );
       llSay(0, "The floor value of -4.5 is: "+(string)llFloor(-4.5) );
  }
      //Returns "The floor value of -4.5 is: -5"
}
 
</lsl>
      llSay(0,  "The floor value of -4.9 is: "+(string)llFloor(-4.9) );
      //Returns "The floor value of -4.9 is: -5"
 
      llSay(0,  "The floor value of -4.1 is: "+(string)llFloor(-4.1) );
      //Returns "The floor value of -4.1 is: -5"
 
      llSay(0,  "The floor value of 4.5 is: "+(string)llFloor(4.5) );
      //Returns "The floor value of 4.5 is: 4"
 
      llSay(0,  "The floor value of 4.9 is: "+(string)llFloor(4.9) );
      //Returns "The floor value of 4.9 is: 4"
 
      llSay(0,  "The floor value of 4.1 is: "+(string)llFloor(4.1) );
      //Returns "The floor value of 4.1 is: 4"
    }
}</source>
|helpers
|helpers
|related={{LSLG|llRound}}<br/>{{LSLG|llCeil}}
|constants
|also
|also_tests
|notes
|also_events
|also_articles
|also_functions={{LSL DefineRow||[[llRound]]|Rounds the float to an integer towards the closest integer}}
{{LSL DefineRow||[[llCeil]]|Rounds the float to an integer towards positive infinity}}
|notes=*For positive values, it is quicker and shorter to simply cast the float to an integer. i=(integer)f is 32 bytes shorter than i=llFloor(f) (in Byte Code) and about 30 times faster in execution, while giving the same result.
|cat1=Math
|cat2
|cat3
|cat4
}}
}}
[[Category:LSL_Functions]]
[[Category:LSL_Math]]

Latest revision as of 01:24, 22 January 2015

Summary

Function: integer llFloor( float val );

Returns an integer that is the integer value of val rounded towards negative infinity (return <= val).

• float val Any valid float value

Caveats

  • The returned value is -2147483648 (0x80000000) if the arithmetic result is outside of the range of valid integers (-2147483648 to 2147483647 inclusive).
All Issues ~ Search JIRA for related Bugs

Examples

default
{
   state_entry()
   {
       llSay(0,  "The floor value of -4.5 is: "+(string)llFloor(-4.5) );
       //Returns "The floor value of -4.5 is: -5"

       llSay(0,  "The floor value of -4.9 is: "+(string)llFloor(-4.9) );
       //Returns "The floor value of -4.9 is: -5"

       llSay(0,  "The floor value of -4.1 is: "+(string)llFloor(-4.1) );
       //Returns "The floor value of -4.1 is: -5"

       llSay(0,  "The floor value of 4.5 is: "+(string)llFloor(4.5) );
       //Returns "The floor value of 4.5 is: 4"

       llSay(0,  "The floor value of 4.9 is: "+(string)llFloor(4.9) );
       //Returns "The floor value of 4.9 is: 4"

       llSay(0,  "The floor value of 4.1 is: "+(string)llFloor(4.1) );
       //Returns "The floor value of 4.1 is: 4"
    }
}

Notes

  • For positive values, it is quicker and shorter to simply cast the float to an integer. i=(integer)f is 32 bytes shorter than i=llFloor(f) (in Byte Code) and about 30 times faster in execution, while giving the same result.

See Also

Functions

•  llRound Rounds the float to an integer towards the closest integer
•  llCeil Rounds the float to an integer towards positive infinity

Deep Notes

Search JIRA for related Issues

Signature

function integer llFloor( float val );