util.math.modf

Shared

Returns the integer and fractional parts of a number


Syntax

local integer, fraction = util.math.modf(
    value
)

Parameters

TypeNameDescription
floatvalueNumber to split into integer and fractional parts

Returns

TypeNameDescription
intintegerInteger part of value
floatfractionFractional part of value (same sign as value)

Examples

Split a positive float
local integer, fraction = util.math.modf(4.75)

core.engine.print("info", integer, fraction) -- 4  0.75
Split a negative float
local integer, fraction = util.math.modf(-3.25)

core.engine.print("info", integer, fraction) -- -3  -0.25
Split an exact integer
local integer, fraction = util.math.modf(10.0)

core.engine.print("info", integer, fraction) -- 10  0.0
Get only the integer part
local integer = util.math.modf(9.99)

core.engine.print("info", integer) -- 9
Get only the fractional part
local _, fraction = util.math.modf(9.99)

core.engine.print("info", fraction) -- 0.99
Separate seconds and milliseconds
local elapsed = 3.456
local secs, ms = util.math.modf(elapsed)

core.engine.print("info", secs, util.math.floor(ms*1000)) -- 3  456
Check if a number is a whole integer
local n = 5.0
local _, fraction = util.math.modf(n)

if fraction == 0 then
    core.engine.print("info", "Whole number")
end

On this page