ماڈیول:Decimals

آزاد انسائیکلوپیڈیا، وکیپیڈیا توں

Documentation for this module may be created at ماڈیول:Decimals/doc

require('Module:No globals')

local p = {}

function p._main(n, decimals)
	decimals = tonumber(decimals)
	local maxDecimals = 14 - math.floor(math.log10(n)) -- 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
	n = math.floor(n * mult + 0.5) / mult
	if decimals < 0 then
		return tostring(n)
	else
		return string.format('%.' .. decimals .. 'f', n)
	end
end

function p.main(frame)
	local args, pargs = frame.args, frame:getParent().args
	return p._main(frame:callParserFunction('#expr', args[1] or pargs[1]), frame:callParserFunction('#expr', args[2] or pargs[2]))
end

return p