Difference between revisions of "LlRound"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
Frionil Fang (talk | contribs) (same applies to round as it does for floor for positive values, faster to just +0.5 and truncate to int) |
|||
(20 intermediate revisions by 10 users not shown) | |||
Line 2: | Line 2: | ||
|func=llRound|sort=Round | |func=llRound|sort=Round | ||
|func_id=11|func_sleep=0.0|func_energy=10.0 | |func_id=11|func_sleep=0.0|func_energy=10.0 | ||
|func_footnote=If the absolute value of the tenths position is 4 or less, | |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 | |p1_type=float|p1_name=val|p1_desc=Any valid float value | ||
|return_type=integer | |return_type=integer | ||
| | |Return_text=that {{LSLP|val}} is closest to. | ||
|spec | |spec | ||
|caveats | |caveats= | ||
* The returned value is -2147483648 (0x80000000) if the arithmetic result is outside of the range of valid integers (-2147483648 to 2147483647 inclusive). | |||
|constants | |constants | ||
|examples=< | |examples=<syntaxhighlight lang="lsl2">default | ||
{ | |||
state_entry() | state_entry() | ||
{ | { | ||
llSay(0,"The rounded value of -4.5 is: "+(string)llRound(-4.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: 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" | |||
} | |||
}</syntaxhighlight> | |||
|helpers | |helpers | ||
|also_functions= | |also_functions={{LSL DefineRow||[[llCeil]]|Rounds the float to an integer towards positive infinity}} | ||
{{LSL DefineRow||[[llCeil]]|Rounds the float to an integer towards positive infinity}} | |||
{{LSL DefineRow||[[llFloor]]|Rounds the float to an integer towards negative infinity}} | {{LSL DefineRow||[[llFloor]]|Rounds the float to an integer towards negative infinity}} | ||
|also_events | |also_events | ||
|also_articles | |also_articles | ||
|also_tests | |also_tests | ||
|notes | |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 | |permission | ||
|negative_index | |negative_index |
Latest revision as of 12:40, 9 October 2023
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: integer llRound( float val );11 | Function ID |
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.