Module:Simplified fraction

Revision as of 08:45, 12 October 2025 by Tristanbay (talk | contribs) (got rid of rational module stuff and replace it with separate function)
Module documentation[view] [edit] [history] [purge]
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(n / b)
end

function p.simfrac(frame)
	local n = frame.args["n"]
	local d = frame.args["d"]
	local num, denom = simplify(num, denom)
	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