有兽档案馆
搜索
切换搜索
切换菜单
切换个人菜单
查看“Module:Percentage”的源代码
来自有兽档案馆
阅读
查看源代码
查看历史
模块
讨论
更多操作
←
Module:Percentage
因为以下原因,您没有权限编辑该页面:
您所请求的操作,仅限具有
注册用户
、
自动确认用户
、
管理员
、
界面管理员
、
优质编辑者
、
确认用户
、
巡查员
、
档案理事员
等
权限
的
用户
执行。
若您尚未登录有兽档案馆账号,请您
登录
有兽档案馆账号后操作。
您尚未完成电子邮件确认,因此操作受限,请尽快
完成电子邮件确认
。
若您无法完成前述手续,请通过适当渠道请求管理员或档案理事员协助。
您可以查看和复制此页面的源代码。
若您无权编辑本页面,您可以
提出编辑请求
,提请有权限者代为编辑。
-- -- 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), digits) end local function oom(num) -- This function implements {{order of magnitude}} return math_module._order(tostring(num)) end function _nonscinote(num) -- This function undoes scientific notation if mw.ustring.match(num or '', '^%s*(%d)%.(%d+)<span[^<>]*>×</span>10<sup>([%-−]*)(%d)</sup>%s*$') then local a,b,c,d = mw.ustring.match(num or '', '^%s*(%d)%.(%d+)<span[^<>]*>×</span>10<sup>([%-−]*)(%d)</sup>%s*$') d = tonumber(d) or 1 if c ~= '' then return '0.' .. mw.ustring.rep('0', d - 1) .. a .. b else return a .. mw.ustring.sub(b .. mw.ustring.rep('0', d ), 1, d) end end return num end local function fmtout(num,snote) if snote then return _nonscinote(num) else return num end end function _percentage(n1, n2, prec, suffix, pad, sigfig, sn) local pct = 100*n1/n2 skey = '<span data-sort-value="' .. sortkey._sortKeyForNumber(pct) .. '♠" style="display:none"></span>' -- prec = math.floor(prec) if sigfig ~= '' then if pct ~= 0 then return skey .. fmtout(rnd(pct, tonumber(sigfig) - oom(pct) - 1), sn) .. suffix else return skey .. fmtout(rnd(pct, tonumber(sigfig) - 3), sn) .. suffix end end if pad ~= '' then return skey .. fmtout(rnd(pct, prec), sn) .. suffix end prec = (prec < 0) and 0 or prec if pct ~= 0 then pct = ((pct < 0) and -1 or 1)*math.floor(math.abs(pct * 10^prec) + 0.5) / 10^prec end return skey .. fmtout(pct, sn) .. suffix end function p.main(frame) local args = frame.args[1] and frame.args or frame:getParent().args local yesno = require('Module:Yesno') return _percentage( tonumber(args[1]) or 0, tonumber(args[2]) or 100, tonumber(args[3]) or tonumber(args['pad']) or 0, args['%'] or '%', args['pad'] or '', args['sigfig'] or '', yesno(args['nonscinote'] or 'no') ) end return p
该页面使用的模板:
Module:Arguments
(
查看源代码
)
Module:Documentation
(
查看源代码
)
Module:Fullurl
(
查看源代码
)
Module:Math
(
查看源代码
)
Module:No globals
(
查看源代码
)
Module:Page name
(
查看源代码
)
Module:Percentage
(
查看源代码
)
Module:Percentage/doc
(
查看源代码
)
Module:Sortkey
(
查看源代码
)
Module:Yesno
(
查看源代码
)
返回
Module:Percentage
。