モジュール:サンドボックス/Siglite3/sandbox

モジュールの解説[作成]
local mm

local p = {}

function p._format(value, precision)
	local number, scale, level
	
	number = p._parse(value)
	if type(number) ~= 'number' then
		return nil
	end
	scale = { '', '万', '億', '兆', '京', '垓' }
	level = 0
	while number > 10000 do
		number = number / 10000
		level = level + 1
	end
	if not mm then
		mm = require('Module:Math')
	end
end

function p._parse(value)
	if type(value) == 'number' then
		return value
	elseif type(value) ~= 'string' or value:find('[^%d,]') then
		return nil;
	end
	value = value:gsub(',', '')
	return tonumber(value)
end

function p._floor(value, precision)
	local scale = math.pow(10, precision or 0)
	return math.floor(value * scale) / scale
end

return p