2012-06-25 19:13:30 -03:00
|
|
|
-- @docclass math
|
2021-07-19 19:24:59 -03:00
|
|
|
local U8 = 2 ^ 8
|
|
|
|
|
local U16 = 2 ^ 16
|
|
|
|
|
local U32 = 2 ^ 32
|
|
|
|
|
local U64 = 2 ^ 64
|
2013-01-16 17:57:05 -02:00
|
|
|
|
2012-06-25 19:13:30 -03:00
|
|
|
function math.round(num, idp)
|
2021-07-19 19:24:59 -03:00
|
|
|
local mult = 10 ^ (idp or 0)
|
|
|
|
|
if num >= 0 then
|
|
|
|
|
return math.floor(num * mult + 0.5) / mult
|
|
|
|
|
else
|
|
|
|
|
return math.ceil(num * mult - 0.5) / mult
|
|
|
|
|
end
|
2012-06-25 19:13:30 -03:00
|
|
|
end
|
2013-01-16 17:57:05 -02:00
|
|
|
|
2022-08-17 12:51:56 -03:00
|
|
|
function math.isu8(num)
|
|
|
|
|
return math.isinteger(num) and num >= 0 and num < U8
|
|
|
|
|
end
|
2013-01-16 17:57:05 -02:00
|
|
|
|
2022-08-17 12:51:56 -03:00
|
|
|
function math.isu16(num)
|
|
|
|
|
return math.isinteger(num) and num >= U8 and num < U16
|
|
|
|
|
end
|
2013-01-16 17:57:05 -02:00
|
|
|
|
2022-08-17 12:51:56 -03:00
|
|
|
function math.isu32(num)
|
|
|
|
|
return math.isinteger(num) and num >= U16 and num < U32
|
|
|
|
|
end
|
2013-01-16 17:57:05 -02:00
|
|
|
|
2022-08-17 12:51:56 -03:00
|
|
|
function math.isu64(num)
|
|
|
|
|
return math.isinteger(num) and num >= U32 and num < U64
|
|
|
|
|
end
|
2013-01-16 17:57:05 -02:00
|
|
|
|
2022-08-17 12:51:56 -03:00
|
|
|
function math.isinteger(num)
|
|
|
|
|
return ((type(num) == 'number') and (num == math.floor(num)))
|
|
|
|
|
end
|
2026-01-30 16:45:21 -03:00
|
|
|
|
|
|
|
|
function roundToTwoDecimalPlaces(value)
|
|
|
|
|
return math.floor(value * 100 + 0.5) / 100
|
|
|
|
|
end
|