Modul:Vitskapleg skrivemåte
Utsjånad
Implementerer {{vitskapleg skrivemåte}}. Sjå testsida at alt verkar som det skal.
local p = {}
function p.skrivemaate(frame)
local verd -- returverd - talet som kjem ut
local args = frame:getParent().args -- hent inn argumenta
if not args[1] then
return ''
end
local verd = args[1]:gsub("%s+", "") -- fjern alle mellomrom i talet som kjem inn
-- legg inn knekkfrie mellomrom og liknande med formatNum-funksjonen
verd = verd:gsub(',', '.') -- formatNum tek inndata med punktum som desimalseparator
verd = mw.language.new('nn'):formatNum(tonumber(verd))
-- formatnum fjernar avsluttande 0-ar frå talet; legg dei til att her
if args[1]:find(',') then
formatertFoerKomma = mw.text.split(verd, ',', plain)[1]
desimaltal = mw.text.split(args[1], ',', plain)[2]
verd = formatertFoerKomma .. ',' .. desimaltal
end
if args[2] then -- sleng på uvisse
verd = verd .. ' ± ' .. args[2]
end
if args['e'] then -- sleng på eksponent
if args[2] then -- få på parentesar
verd = '(' .. verd .. ')'
end
verd = verd .. ' × 10<sup>' .. args['e'] .. '</sup>'
end
if args['s'] or args['u'] or args['eining'] then -- sleng på eining
verd = verd .. ' ' .. (args['s'] or args['u'] or args['eining'])
end
return verd -- ferdig
end
return p