I make large numbers serialization module

Soo,i made this for myself, but i wan’t to share this tool, it helped me with making game and data stores, because it makes large numbers 50% less characters than normal

local serialized = mod.Serialize(103898328932) -- returned 4 character less string 
local deserialized = mod.Deserialize(serialized) -- returned number at good precision only losing last 2

print(serialized)
print(deserialized)

here is a module code, and here is link: Module

local module = {}
local function RoundTo(number:number,points:number):number
	return math.floor(number*10^points)/10^points
end
function module.Serialize(number:number):string
	local toReturn = ""
	for i = 1, 100 do
			if number < 10000 then
				toReturn = "10/"..RoundTo(math.log10(number),4)
			else
				toReturn = "10/"..RoundTo(math.log10(number),2)
				end
	
	end
	return toReturn
end
function module.Deserialize(str:string):number
	local splitted = str:split("/")
	
	local base = splitted[1]
	local power = splitted[2]
	
	return math.ceil(base^power)
end


return module

3 Likes