Difference between revisions of "LlRound"

From Second Life Wiki
Jump to navigation Jump to search
 
(same applies to round as it does for floor for positive values, faster to just +0.5 and truncate to int)
 
(33 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{lowercase|llRound}}
{{LSL_Function
__NOTOC__
|func=llRound|sort=Round
 
|func_id=11|func_sleep=0.0|func_energy=10.0
{| width="100%"
|func_footnote=If the absolute value of the tenths position is 4 or less, {{LSLP|val}} is rounded off; otherwise, {{LSLP|val}} is rounded towards positive infinity.
|-
|p1_type=float|p1_name=val|p1_desc=Any valid float value
|<div id="box">
|return_type=integer
== [[LSL_Type_integer|integer]] llRound( [[LSL_Type_float|float]] val); ==
|Return_text=that {{LSLP|val}} is closest to.
<div style="padding: 0.5em">
|spec
* val - Any valid float value
|caveats=
</div>
* The returned value is -2147483648 (0x80000000) if the arithmetic result is outside of the range of valid integers (-2147483648 to 2147483647 inclusive).
</div>
|constants
|-
|examples=<syntaxhighlight lang="lsl2">default
|
{
<div id="box">
 
== Specification ==
<div style="padding: 0.5em">
Returns val rounded to the nearest integer
{|  
|-
| [[LSL_Energy|Energy]]:
| 10.0
|-
| [[LSL_Sleep|Sleep]]:
| 0.0
|-
| [[LSL_Function_ID|Function ID]]:
| 11
|}
</div>
</div>
|-
|
<div id="box">
 
== Caveats ==
<div style="padding: 0.5em">
</div>
</div>
 
|-
|
<div id="box">
== Examples ==
<div style="padding: 0.5em">
<lsl>
default {
   state_entry()
   state_entry()
   {
   {
       llSay(0,"The ceil value of -4.5 is: "+(string)llCeil(-4.5) );
       llSay(0, "The rounded value of -4.9 is: "+(string)llRound(-4.9) );
  }
      //Returns "The rounded value of -4.9 is: -5"
}
     
</lsl>
      llSay(0,  "The rounded value of -4.1 is: "+(string)llRound(-4.1) );
</div>
      //Returns "The rounded value of -4.1 is: -4"
</div>
     
|-
      llSay(0,  "The rounded value of 4.5 is: "+(string)llRound(4.5) );
|
      //Returns "The rounded value of 4.5 is: 5"
<div id="box">
     
== Helper Functions ==
      llSay(0,  "The rounded value of 4.9 is: "+(string)llRound(4.9) );
<div style="padding: 0.5em">
      //Returns "The rounded value of 4.9 is: 5"
<lsl>
     
</lsl>
      llSay(0,  "The rounded value of 4.1 is: "+(string)llRound(4.1) );
</div>
      //Returns "The rounded value of 4.1 is: 4"
</div>
|-
|
<div id="box">
== See Also ==
<div style="padding: 0.5em">
</div>
</div>
|-
|
<div id="box">
== Notes ==
<div style="padding: 0.5em">
</div>
</div>
|}


[[Category:LSL_Functions]]
      llSay(0,  "The rounded value of -4.5 is: "+(string)llRound(-4.5) );
[[Category:LSL_Math]]
      //Returns "The rounded value of -4.5 is: -4"
    }
}</syntaxhighlight>
|helpers
|also_functions={{LSL DefineRow||[[llCeil]]|Rounds the float to an integer towards positive infinity}}
{{LSL DefineRow||[[llFloor]]|Rounds the float to an integer towards negative infinity}}
|also_events
|also_articles
|also_tests
|notes=*For positive values, it is quicker to add 0.5 to the value and cast to an integer. i=(integer)(f+0.5) produces less bytecode than i=llRound(f) and is about 5 times faster in execution, while giving the same result.
|permission
|negative_index
|cat1=Math
|cat2
|cat3
|cat4
}}

Latest revision as of 11:40, 9 October 2023

Summary

Function: integer llRound( float val );
0.0 Forced Delay
10.0 Energy

Returns the integer that val is closest to.

• float val Any valid float value

If the absolute value of the tenths position is 4 or less, val is rounded off; otherwise, val is rounded towards positive infinity.

Caveats

  • The returned value is -2147483648 (0x80000000) if the arithmetic result is outside of the range of valid integers (-2147483648 to 2147483647 inclusive).

Examples

default
{
   state_entry()
   {  
       llSay(0,  "The rounded value of -4.9 is: "+(string)llRound(-4.9) );
       //Returns "The rounded value of -4.9 is: -5"
       
       llSay(0,  "The rounded value of -4.1 is: "+(string)llRound(-4.1) );
       //Returns "The rounded value of -4.1 is: -4"
       
       llSay(0,  "The rounded value of 4.5 is: "+(string)llRound(4.5) );
       //Returns "The rounded value of 4.5 is: 5"
       
       llSay(0,  "The rounded value of 4.9 is: "+(string)llRound(4.9) );
       //Returns "The rounded value of 4.9 is: 5"
       
       llSay(0,  "The rounded value of 4.1 is: "+(string)llRound(4.1) );
       //Returns "The rounded value of 4.1 is: 4"

       llSay(0,  "The rounded value of -4.5 is: "+(string)llRound(-4.5) );
       //Returns "The rounded value of -4.5 is: -4"
    }
}

Notes

  • For positive values, it is quicker to add 0.5 to the value and cast to an integer. i=(integer)(f+0.5) produces less bytecode than i=llRound(f) and is about 5 times faster in execution, while giving the same result.

See Also

Functions

•  llCeil Rounds the float to an integer towards positive infinity
•  llFloor Rounds the float to an integer towards negative infinity

Deep Notes

Signature

function integer llRound( float val );