Formă: conversie
Salt la navigare Salt la căutare
Instructiuni de folosire
Acesta este un modul scris în Lua . Următoarele instrucțiuni sunt incluse în sub- modulul: conversie / om ( schimbări · istorie )
Sandbox: Formă: Conversie / sandbox ( modificări · istoric ) · Test: Modul: Conversie / test ( modificat · Istoric · Executare )
Acesta este un modul scris în Lua . Următoarele instrucțiuni sunt incluse în sub- modulul: conversie / om ( schimbări · istorie )
Sandbox: Formă: Conversie / sandbox ( modificări · istoric ) · Test: Modul: Conversie / test ( modificat · Istoric · Executare )
Modul pentru a converti o valoare numerică dintr-o unitate de măsură în alta.
Are o subpagină de configurare: Modul: Conversie / Configurare .
- [[
* Modul pentru conversia unităților de măsură.
*
* Modificat pe scară largă începând cu:
* http://fr.wikipedia.org/w/index.php?title=Module:Conversion&oldid=118515752
]] -
require ( „Formular: fără globali” )
local cfg = mw . loadData ( „Modul: conversie / configurare” )
local p = {}
- Returnează numărul rotunjit la numărul necesar de zecimale
- http://lua-users.org/wiki/SimpleRound
runda funcției locale ( num , idp )
local mult = 10 ^ ( idp sau 0 )
returnează math.floor ( num * mult + 0,5 ) / mult
Sfârșit
funcția locală getUnit ( val , targetunitdata , args )
ret local , link , spațiu
dacă arg. showunit atunci
ret = targetunitdata . simbol
elseif arg. showunitlong atunci
- unitate în întregime
ret = val > 1 și targetunitdata . name2 sau targetunitdata. nume1
Sfârșit
dacă arg. showunitlink atunci
link = targetunitdata . legătură
Sfârșit
space = ( args . showunit și targetunitdata . nospace ) și '' sau ''
returnează spațiul .. ( link și '[[' .. link .. '|' .. ret .. ']]' sau ret )
Sfârșit
- Returnează valoarea convertită la unitățile și opțiunile specificate
funcția p. _main ( strval , sourceunit , targetunit , args )
local val , sourceunitdata , targetunitdata , cat
val = tonumber ( strval )
- dacă nu este un număr, returnează șirul neschimbat
dacă nu val atunci
return strval
Sfârșit
dacă nu argumentează atunci
args = {}
Sfârșit
dacă sourceunit și nu targetunit atunci
targetunit = unitate sursă
Sfârșit
sourceunitdata = cfg . units [ sourceunit ] sau cfg . unități [ cfg . alias [ sourceunit ]]
targetunitdata = cfg . units [ targetunit ] sau cfg . unități [ cfg . alias [ targetunit ]]
dacă sourceunitdata și targetunitdata atunci
dacă sourceunitdata . tip ~ = targetunitdata . tastați atunci
eroare ( 'unități de măsură incompatibile:' .. sursăunitdate . tip .. 'și' .. țintăunitdată . tip )
Sfârșit
dacă sourceunitdata == targetunitdata atunci
- nimic
elseif sourceunitdata . tastați == „temperatura” atunci
val = ( val - sourceunitdata . offset ) * sourceunitdata . scări
val = val / targetunitdata . scale + targetunitdata . decalaj
altfel
val = val * sourceunitdata . scale / targetunitdata . scări
Sfârșit
altfel
cat = '[[Categorie: Pagini cu unitate de măsură neacceptată]]'
Sfârșit
- rotunjire
dacă arg. rotunjind atunci
val = rotund (val, arg. rotunjire)
Sfârșit
- formatnum
dacă arg. formatnum atunci
val = mw . limba . getContentLanguage (): formatNum ( val )
Sfârșit
-- unitate de măsură
dacă targetunitdata și ( args . showunit sau args . showunitlong ) atunci
val = val .. getUnit ( val , targetunitdata , args )
Sfârșit
returnează val .. ( pisică sau '' )
Sfârșit
- Punct de intrare pentru {{#invoke: Conversion | main | ...}}
funcția p. principal ( cadru )
local args = cadru . argumente
retur p . _main ( args [ 1 ], args [ 2 ], args [ 3 ], args )
Sfârșit
retur p