Această pagină este protejată de mișcare
Această pagină este protejată

Formă: conversie

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

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