Разбор числа на разряды

<< Click to Display Table of Contents >>

Navigation:  Multi-Protocol MasterOPC Server > Руководство по языку Lua 5.1 > Примеры и полезности > Преобразование данных >

Разбор числа на разряды

При формировании запросов к устройству иногда возникает необходимость разобрать отправляемое число на разряды, для последующей их обработки (например сформировать их них число формата BCD). Решить данную задачу поможет следующая функция.

Пример функции

function UnpachNumber(Num)

local MasNum={};

repeat

   local Val=Num*0.1;--делим на 10

   Num,Rem=math.modf(Val); --берем целую и дробную часть

   local NewRem=math.modf(Rem*10); --дробную умножаем на 10 и берем от нее целую часть

   table.insert(MasNum,NewRem); --записываем в таблицу

until Num==0 --если целая часть равна нулю - выходим из цикла

return MasNum;

end;

Пример вызова функции

local k={};

k=UnpachNumber(10);

--таблица k будет содержать два элемента - числа 1 и 0.