Difference between revisions of "LlRound"
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
Dzonatas Sol (talk | contribs) |
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) |
||
(25 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LSL_Function | ||
|func=llRound | |func=llRound|sort=Round | ||
|func_id=11 | |func_id=11|func_sleep=0.0|func_energy=10.0 | ||
|func_sleep=0.0 | |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. | ||
|func_energy=10.0 | |p1_type=float|p1_name=val|p1_desc=Any valid float value | ||
|func_footnote=If the absolute value of the tenths position is 4 or less, val is rounded off; otherwise, val is rounded towards | |return_type=integer | ||
|p1_type=float | |Return_text=that {{LSLP|val}} is closest to. | ||
|p1_name=val | |||
|p1_desc=Any valid float value | |||
|return_type= | |||
| | |||
|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). | ||
< | |constants | ||
|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||[[llFloor]]|Rounds the float to an integer towards negative infinity}} | |||
|also_events | |||
|notes | |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 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.