Module:Percentage: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>Frietjes No edit summary |
meta>Frietjes No edit summary |
||
Line 19: | Line 19: | ||
function percentage(n1, n2, prec, suffix, pad, sigfig) | function percentage(n1, n2, prec, suffix, pad, sigfig) | ||
local pct = tonumber(n1)/tonumber(n2) | local pct = 100*tonumber(n1)/tonumber(n2) | ||
skey = '<span style="display:none" data-sort-value="' | skey = '<span style="display:none" data-sort-value="' | ||
.. sortkey._sortKeyForNumber(pct) .. '♠"></span>' | .. sortkey._sortKeyForNumber(pct) .. '♠"></span>' |
Revision as of 13:15, 20 October 2019
Documentation for this module may be created at Module:Percentage/doc
--
-- This module implements [[Template:Percentage]]
--
local p = {}
local math_module = require( "Module:Math" )
local precision = math_module._precision
local sortkey = require( "Module:Sortkey" )
local function rnd(num, digits)
-- This function implements {{rnd}}
return math_module._precision_format(tostring(num), tostring(digits))
end
local function oom(num)
-- This function implements {{order of magnitude}}
return math_module._order(tostring(num))
end
function percentage(n1, n2, prec, suffix, pad, sigfig)
local pct = 100*tonumber(n1)/tonumber(n2)
skey = '<span style="display:none" data-sort-value="'
.. sortkey._sortKeyForNumber(pct) .. '♠"></span>'
if sigfig ~= '' then
return skey .. rnd(pct, tonumber(sigfig) - oom(pct) - 1) .. suffix
end
if pad ~= '' then
return skey .. rnd(pct, prec) .. suffix
end
return skey .. pct .. suffix
-- if pct > 0 then
-- pct = math.floor(pct / 10^prec + 0.5) * 10^prec
-- else
-- pct = math.floor(pct / 10^prec - 0.5) * 10^prec
-- end
-- return skey .. pct .. suffix
end
function p.main(frame)
return percentage(frame.args[1] or '0', frame.args[2] or '100', tonumber(frame.args[3]) or 0, frame.args['%'] or '%', frame.args['pad'] or '', frame.args['sigfig'] or '')
end
return p