WoW:USERAPI round: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
m (bolded title of article)
(Wow, the old one was overly complicated.)
Line 3: Line 3:


'''Round''' a number off to n places.
'''Round''' a number off to n places.
  number = round(input, n)
  number = round(number, decimals)


== Function Parameters ==
== Function Parameters ==
=== Arguments ===
=== Arguments ===
;input : Number. The number to round
;number: Number. The number to round.
;n : Number. Round to this many places. If nil, round to 0 places.
;decimals : Number. Round to this many places.
=== Returns ===
=== Returns ===
; number : Number. The rounded number.
;number : Number. The rounded number.


== Example ==
== Example ==
Line 17: Line 17:


==Code==
==Code==
<pre>function round(input, places)
<!-- No, no sanity checks are needed. That's the programmers responsibility. -->
    if not places then
<pre>function round(number, decimals)
        places = 0
return number - (number % (0.1 ^ decimals))
    end
    if type(input) == "number" and type(places) == "number" then
        local pow = 1
        for i = 1, ceil(places) do
            pow = pow * 10
        end
        return floor(input * pow + 0.5) / pow
    end
end</pre>
end</pre>
__NOTOC__
__NOTOC__

Revision as of 00:33, 17 January 2010

This page documents a <i>user-defined function</i> that you can copy and paste into your addon. Replace PREFIX with your addon or lib prefix to avoid conflicts between different versions of these functions.

User defined functions


Round a number off to n places.

number = round(number, decimals)

Function Parameters

Arguments

number
Number. The number to round.
decimals
Number. Round to this many places.

Returns

number
Number. The rounded number.

Example

local number = round(math.pi, 2)
print(number) -- prints 3.14

Code

function round(number, decimals)
	return number - (number % (0.1 ^ decimals))
end