Hopp til innhald

Modul:Vitskapleg skrivemåte

Frå Wikipedia – det frie oppslagsverket

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 .. '&nbsp;×&nbsp;10<sup>' .. args['e'] .. '</sup>'
	end
	if args['s'] or args['u'] or args['eining'] then -- sleng på eining
		verd = verd .. '&nbsp;' .. (args['s'] or args['u'] or args['eining'])
	end
	
	return verd -- ferdig
end
		
return p