-- Rounds a number to the nearest integer.
function round(fVal)
return floor(fVal + 0.5)
end
-- Converts a decimal value into a fraction.
function decimal_to_fraction(fNumber)
local fullNumber = floor(fNumber)
local iNumerator = fNumber - fullNumber
local iDenominator = 1
while (iNumerator ~= floor(iNumerator)) do
iNumerator = iNumerator * 10
iDenominator = iDenominator * 10
end
iNumerator = floor(iNumerator)
for i = 2, floor(sqrt(iNumerator)) do
while ((mod(iNumerator, i) == 0) and (mod(iDenominator, i) == 0)) do
iNumerator = iNumerator / i
iDenominator = iDenominator / i
end
end
iNumerator = iNumerator + fullNumber * iDenominator
-- print(fNumber .. " = " .. iNumerator .. "/" .. iDenominator)
return iNumerator, iDenominator
end
Advertisement
504
pages
Miscellaneous Mathematical Functions
Advertisement