Lua Math Library

This section is more of a reference to how to use the math library in Lua. We aren’t going to go too into depth for each function. The math library can be divided up into several different classes of functions. We have rounding, trigonometrical, etc.

Math Constants

ConstantDescription
math.hugeInfinity
math.maxintegerThe biggest integer
math.minintegerThe smallest integer
math.piA constant for Pi

Math Functions

Conversion and Rounding

FunctionDescription
math.abs( x )Returns the absolute value of x
math.ceil( x )Rounds x up to the nearest int
math.floor( x )Rounds x down to the nearest int
math.fmod( x, y )Get the remainder from dividing x / y
math.modf( x )Get the integer and fractional part for x, (2.5 = 2, 0.5)
math.tointeger( x )Converts x to an integer, returns nil otherwise
math.type( x )Gets the numerical type of x, either integer, float, or nil
math.ult( x, y )Get a boolean if x as an unsigned int is less than y as an unsigned int

Trigonometrical

FunctionDescription
math.acos( x )Gets the arc cosine in radians for x
math.asin( x )Gets the arc sine in radians for x
math.atan( x [, y] )Gets the arc tan in radians for x or x/y
math.cos( x )Gets the cosine for radian value x
math.deg( x )Converts angle x from radians to degrees
math.rad( x )Converts angle x from degrees to radians
math.sin( x )Gets the sine for radian value x
math.tan( x )Gets the tangent for radian value x

Random

FunctionDescription
math.random( [x [, y]] )Get a random number between 0 and 1, or 1 and x, or x and y (must be positive ints)
math.randomseed( x )Seed the random number generator

Comparative

FunctionDescription
math.max( x, … )Get the largest value between x and every other argument
math.min( x, … )Get the lowest value between x and every other argument

Exponential and Logarithmic

FunctionDescription
math.exp( x )Get ex
math.log( x [, base ] )Get the natural logarithm for x, or a logarithm of base for x
math.sqrt( x )Get x0.5

Simple Rounding

We have both math.floor( x ) and math.ceil( x ), but how do we round based on the fractional part of x being greater than or equal to, or less than 0.5? A quick trick for this is to do:

rounded = math.floor( x + 0.5 )

Exercises

We aren’t going to cover any specific details with these as they should be pretty self-explanatory. Try each one out and see what happens when you give it weird parameters. What happens with a negative value for x for math.sqrt( x )? What exactly does math.ult( x, y ) do for negative values? How could you do a true round function using math.ceil( x )?

Categories: Lua Tutorial
Some Dude:

View Comments (1)