Hello @naveen_pcs
There is many solution, I have write down one but without testing.
local myMonney="10000000000" -- I assume all number began by not a 0 local function myStringNumbertoNumber(myNumber) local theNumber={} local i=0 while(i*30<string.len(myNumber)) do theNumber[i]=tonumber(string.sub(myNumber,i*30,(i+1)*30)) i=i+1 end return theNumber end local function myNumberToMyString(myNumber) local theNumber="" for(i=0,#myNumber)do theNumber=theNumber..myNumber[i] end return theNumber end local function compareLargeNumber(myNumber,myMonney) local theMyNumber=myStringNumbertoNumber(myNumber) local theMyMonney=myStringNumbertoNumber(myMonney) local result=0 -- 0 for equal, 1 for >,2 for < if(#theMyNumber>#theMyMonney) then result=1 else if(#theMyNumber<#theMyMonney) then result=2 else local i=0 while(i<#theMyMonney) do if(theMyNumber[i]>theMyMonney[i])then result=1 i=100 -- large number else if(theMyNumber[i]<theMyMonney[i])then result=2 i=100 --large number else i=i+1 end end end return result end local function addOrMinus(myNumber,myMonney,addOrMinus)--addOrMinus is true for add and false to minus local theMyNumber=myStringNumbertoNumber(myNumber) local theMyMonney=myStringNumbertoNumber(myMonney) -- continue like this, I think you have understood the logic behind end