Modul:Decimals
Dokumentaciju za ovaj modul možete napraviti na stranici Modul:Decimals/dok
require('Module:No globals')
local p = {}
function p._main(n, d)
local num = tonumber(n)
if not num then
error('Ne mogu pretvoriti "' .. tostring(n) .. '" u broj')
end
local decimals = tonumber(d)
if not decimals then
error('Ne mogu pretvoriti "' .. tostring(d) .. '" u broj')
end
local maxDecimals = 14 - math.floor(math.log10(num)) -- to allow a maximum of 15 significant figures, which is the highest guaranteed correct with doubles
if decimals > maxDecimals then decimals = maxDecimals end
local mult = 10^decimals
num = math.floor(num * mult + 0.5) / mult
if decimals < 0 then
return tostring(num)
else
local rezultat = string.format('%.' .. decimals .. 'f', num)
-- tačka u zarez
local novirezultat, iznos = string.gsub(rezultat,'%.',',')
-- za svaki slučaj ako je više puta zamijenjeno
if iznos == 1 then rezultat = novirezultat end
return rezultat
end
end
function p.main(frame)
local args, pargs = frame.args, frame:getParent().args
return p._main(mw.ext.ParserFunctions.expr(args[1] or pargs[1]), mw.ext.ParserFunctions.expr(args[2] or pargs[2]))
end
return p