Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Epi
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local lang = mw.getContentLanguage() local function formatnum(num) return lang:parseFormattedNumber(num) and lang:formatNum(lang:parseFormattedNumber(num)) or num end local function ntsh(outvalue) -- This code was copied from [[Template:Convert]] if outvalue == 0 then sortkey = '5000000000000000000' else local mag = math.floor(math.log10(math.abs(outvalue)) + 1e-14) local prefix if outvalue > 0 then prefix = 7000 + mag else prefix = 2999 - mag outvalue = outvalue + 10^(mag+1) end sortkey = string.format('%d', prefix) .. string.format('%015.0f', math.floor(outvalue * 10^(14-mag))) end return '<span style="display:none" data-sort-value="' .. sortkey .. 'β "></span>' end local function cvt(n1, u1, e, u2, d, fac, fmt, l, flip) local rnd = require('Module:Math')._round local so, sc = '', '' if n1 < 0 then so, sc = '<span style="color:red">', '</span>' end local n2 = formatnum(rnd(n1/fac,tonumber(d) or 0)) .. ' ' .. u2 if fmt then n1 = formatnum(rnd(n1,tonumber(e) or 0)) .. ' ' .. u1 else n1 = rnd(n1,tonumber(e) or 0) .. ' ' .. u1 end if flip then if l == '1' then return so .. n2 .. ' (' .. n1 .. ')' else return so .. n2 .. '<br/>' .. n1 end else if l == '1' then return so .. n1 .. ' (' .. n2 .. ')' else return so .. n1 .. '<br/>' .. n2 end end return n1 end local function moft(n, e, d, l, s, p, flip) if tonumber(n) then n = tonumber(n) fmt = true if (math.abs(n) > 900) and (math.abs(n) < 9000) then fmt = false end return ntsh(n) .. cvt(n, 'm', e, 'ft', d, 0.3048, fmt, l, flip) end return ntsh(0) .. s .. p .. n .. s end local function kmomi(n, l, s, p, flip) if tonumber(n) then n = tonumber(n) local fmt = true local e, d = 0, 0 if n < 19.995 then e = 2 elseif n < 199.95 then e = 1 end if n < 32.179 then d = 2 elseif n < 321.789 then d = 1 end return ntsh(n * 1000) .. cvt(n, 'km', e, 'mi', d, 1.609344, fmt, l, flip) end return ntsh(-1e10) .. s .. p .. n .. s end function p.main(frame) local args = frame:getParent().args local elev_m = (args[1] or '') local prom_m = (args[2] or '') local iso_km = (args[3] or '') local a = 'align=' .. (args['a'] or 'center') local r = (args['r'] or '1') ~= '1' and (' rowspan=' .. args['r']) or '' local d = args['d'] or '0' -- input precision local e = args['e'] or d -- output precision local l = args['l'] or '2' -- ? local p = args['p'] or '' -- prefix local s = args['s'] or '' -- italics and/or bold formatting if prom_m == '>500' then prom_m = '500' p = p .. '>' end local flip = (args['m'] or '1') == '2' local elev = '|' .. a .. r .. '|' .. moft(elev_m, e, d, l, s, p, flip) local prom = '|' .. a .. r .. '|' .. moft(prom_m, d, d, l, s, p, flip) local iso = '|' .. a .. r .. '|' .. kmomi(iso_km, l, s, p, flip) return elev .. '|' .. prom .. '|' .. iso end return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Tl
(
edit
)
Module:Epi/doc
(
edit
)