Hoppa till innehållet

Modul:Swenum

Från Wikimedia

Dokumentationen för denna modul kan skapas på Modul:Swenum/dok

local p = {}
 
function p.swe2num( frame )
    local str = frame.args[1]
    if (str) then
        str = string.gsub(str, "%s", "")
        str = string.gsub(str, "%.", "")
        str = string.gsub(str, ",", ".")
    end
    return str    
end

function p.num2swe( frame )
    local str = frame.args[1]
    if (str) then
    	-- us numbering to plain numbering
        str = string.gsub(str, ",", "")
        -- plain to swedish
        str = string.gsub(str, "%.", ",")
        local decPos = string.find(str, ",")
        if (decPos) then
        	str = p.formatThousand(string.sub(str, 1, decPos-1), ' ') .. string.sub(str, decPos)
    	else
    		str = p.formatThousand(str, ' ')
		end
    end
    return str    
end

--add thousand separators to integer number
function p.formatThousand( num, sep )
	local pos = string.len(num) % 3
    if pos == 0 then pos = 3 end
    return string.sub(num, 1, pos)
    .. string.gsub(string.sub(num, pos+1), "(...)", sep.."%1")
end

return p