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 user-defined function 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