Module:Wikidata/Formatters/round
Εμφάνιση
Documentation for this module may be created at Module:Wikidata/Formatters/round/τεκμηρίωση
local p = {}
local formatNumber = p.formatNumber
local function roundToOneDecimal(value)
local int, fract = math.modf(value)
local fract_times_ten = fract * 10
if fract_times_ten - math.floor(fract_times_ten) < 0.5 then
return int + math.floor(fract_times_ten) / 10
else
return int + math.ceil(fract_times_ten) / 10
end
end
function p.formatNumber(value)
local factor = 1
if value < 0 then
value = -value
factor = -factor
end
if value > 10^6 and value < 10^9 then
return mw.ustring.format('%s mil.', formatNumber(factor * roundToOneDecimal(value / 10^6)))
elseif value > 10^9 and value < 10^12 then
return mw.ustring.format('%s mld.', formatNumber(factor * roundToOneDecimal(value / 10^9)))
else
return formatNumber(factor * value)
end
end
return p