- This module implements a template that is currently missing or does not use this module. (edit template)
This module automatically creates a fraction in simplest form from a numerator and denominator. Whether the fraction is in a mixed form or not when greater than 1 can be controlled using the mixed parameter.
| Introspection summary for Module:Simplified fraction
|
Functions provided (1)
| Line
|
Function
|
Params
|
| 15
|
simfrac (invokable)
|
(frame)
|
|
Lua modules required (0)
| Variable
|
Module
|
Functions used
|
|
No function descriptions were provided. The Lua code may have further information.
local p = {}
local function simplify(n, d)
local a = math.max(n, d)
local b = math.min(n, d)
local g = 1
while b ~= 0 do
g = a % b
a = b
b = g
end
return math.floor(n / a), math.floor(d / a)
end
function p.simfrac(frame)
local n = frame.args["n"]
local d = frame.args["d"]
local num, denom = simplify(n, d)
local whole = frame.args["mixed"] and math.floor(num / denom) or 0
local ft
if d == 1 then
ft = string.format("%d", n)
elseif whole ~= 0 then
ft = string.format("{{frac|%d|%d|%d}}", whole, num - whole * denom, denom)
else
ft = string.format("{{frac|%d|%d}}", num, denom)
end
return frame:preprocess(ft)
end