Описание функции


Number

Возвращает числовое представление выражения.

Number(expression[,flag=0])

Параметры

expression Выражение для преобразования в число.
flag [необязательный] Указывает поведение.
Может быть одно из следующих значений:
Default = возвращает 32 или 64-битное целое число. См. примечания.
1 = возвращает 32-битное целое число.
2 = возвращает 64-битное целое число.
3 = возвращает double.

Возвращаемое значение

Возвращает число.

Примечания

Если передаётся число, то функция возвращает входные данные.
Строка, начинающаяся с букв, имеет числовое представление равное нулю. Строка, начинающаяся с цифр и содержащая не цифры - обрезается. Числом воспринимается любая последовательность цифр от 0 до 9. Символы "+" и "-" могут быть только префиксом числа или экспоненты. Точка "." может быть в любой позиции, но повторное использование воспринимается литерально (как есть). Допускается экспоненциальный вид числа, например 2e-3. Если строка содержит правильное шестнадцатеричное число с префиксом "0x", оно будет преобразовано с учётом допустимых символов 0-9, A-F, a-f.
Поведение по умолчанию является таким, что длина целого числа устанавливается автоматически. Если входное значение после преобразования находится в пределах 32-битного целого числа, то возвращается в виде 32-битного целого числа, в противном случае возвращается в виде 64-битного целого числа. Оба знаковые (имеют бит указывающий положительное или отрицательное число).

Функцию можно подключить через команду exect

См. также

Int, String, Ceiling, Floor, Round

Примеры:
 Как создать кнопку?

; i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i! Комментарий i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!
Number(2+3*4) ; возвращает 14 (матем. операции с числами выполняются в первую очередь)
Number('2+3*4') ; возвращает 2
Number('3.14') ; возвращает 3.14
Number('-3.14') ; возвращает -3.14
Number(21/7) ; возвращает 3
Number('21/7') ; возвращает 21
Number('tmp3') ; возвращает 0
Number('3tmp') ; возвращает 3
Number(-3-4) ; возвращает -7
Number('-3-4') ; возвращает -3
Number('+3.4.5+3.4') ; возвращает 3.4
Number('2,000') ; возвращает 2
Number('2 000') ; возвращает 2
Number('.4.4-3') ; возвращает 0.4
Number('-3.4e-2') ; возвращает -0.034, экспоненциальный вид
Number('-3') ; возвращает -3
Number('0x000009') ; возвращает 9, шестнадцатеричные числа поддерживаются
; i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!i!

exect=$var_n1=Number('2,000')||$var_n2=Number('0x000009')||$var_n3=Number('3tmp')||$var_dd=Number('tmp3') GLOBALEXECT<a> ;; возвращает числовое представление выражения.

exect=$var_a=StringSplit('%%COMMANDER_PATH%%\Bar\000_TCIMG_Test.bar|%%COMMANDER_PATH%%\Bar\084_AU3.bar|%%COMMANDER_PATH%%\Bar\000_TCIMG_Test_Exe.bar','|')||$var_si=EnvGet('COMMANDER_PATH')&'\WinButtonBar.ini'||$var_sb=IniRead('$var_si','Buttonbar','Buttonbar',Null)||$var_i=Number(_ArraySearch($var_a,'$var_sb')+1)||$var_i=($var_i>3~~Or~~$var_i=0)?1:$var_i||IniWrite('$var_si','Buttonbar','Buttonbar','$var_a[$var_i]')||IniWrite('$var_si','Buttonbar','Buttonbar',Execute('$var_a[$var_i]')) ;; записать один из 3-х заданных путей .bar по кругу в WinButtonBar.ini в секцию [Buttonbar]

exect=$var_h=WinGetHandle('[CLASS:AkelPad4]')||$var_n=Number(_SendM(Eval('var_h'),1222,153,0))||$var_i=$var_n=1?_SendM(Eval('var_h'),273,4256,0):0 start=%%COMMANDER_PATH%%\AkelFiles\Tools\AkelPadMin\AkelPadMin.exe||%P%N||&&procwait exect=$var_i=$var_n=1?_SendM(Eval('var_h'),273,4256,0):0 ;; открыть файл под курсором в AkelPadMin игнорируя настройку "Одна копия программы" уже запущенного AkelPad

sends=??-1||tcg<HTML1> textx=%WL||test<30t!!Number(60+GLOBALSENDS<0>)>||?F1,63||code<4>||backup<0> ;; Подсчитать число строк в шаблоне html и прибавив 60, произвести обработку выделенных файлов, но только тех, которые имеют число строк большее чем вычисленное значение

slist=%WL||^^~~Number(<info=o10::><<info=o30::>) GLOBALSLIST<a> ;; получить список для выделенных объектов, добавив в начало 1, если дата модификации меньше даты создания, 0 если больше или равно

exect=$var_n=Number(WinGetHandle('[ACTIVE]'))||_ViewValues($var_n) ;; получить хендл активного окна в виде десятичного числа

exect=$var_n=Number(WinGetHandle('[ACTIVE]')) dubls=3 infow=2||TitleWindow1||attach<@$var_n> tcimg=$cm540 ;; после заголовка активного окна создать информационную строку, настройки в секции [TitleWindow1], если включена, то выключить с обновлением заголовка

exect=$var_sp=_PathFull('$f202\Puzzle.bmp')||$var_nw=1200||$var_nh=900 exect=$var_wh=StringSplit('<info=i3$var_sp//>','x') exect=$var_iw=Ceiling($var_nw/$var_wh[1])||$var_iw=Number($var_iw)||$var_ih=Ceiling($var_nh/$var_wh[2])||$var_ih=Number($var_ih) sends=#??-6^||#K$var_iw*$var_ih!!$var_sp^ imgnz=$GLOBALSENDS||"%t"//0||$var_iw,$var_ih||upd<3> ;; размножить небольшое изображение по ширине и по вертикали под минимальный заданный размер 1200х900, создав в другой панели изображение именем файла
exect=$var_sp=_PathFull('$f202\Puzzle.bmp')||$var_nw=1200||$var_nh=900 exect=$var_wh=StringSplit('<info=i3$var_sp//>','x') exect=$var_iw=Ceiling($var_nw/$var_wh[1])||$var_iw=Number($var_iw)||$var_ih=Ceiling($var_nh/$var_wh[2])||$var_ih=Number($var_ih) sends=#??-6^||#K$var_iw*$var_ih!!$var_sp^ imgnz=$GLOBALSENDS||"%t"//0||$var_iw,$var_ih imgcf=GLOBALIMGNZ<1>||"%t"//1||pruning<0,0,@H-900,@W-1200>||upd<3> ;; размножить небольшое изображение по ширине и по вертикали под минимальный заданный размер 1200х900 + обрезать до заданного размера, создав в другой панели изображение именем файла
exect=$var_sp=_PathFull('$f202\Puzzle.bmp')||$var_nw=1202||$var_nh=902 exect=$var_wh=StringSplit('<info=i3$var_sp//>','x') exect=$var_iw=Ceiling($var_nw/$var_wh[1])||$var_iw=Number($var_iw)||$var_ih=Ceiling($var_nh/$var_wh[2])||$var_ih=Number($var_ih) sends=#??-6^||#K$var_iw*$var_ih!!$var_sp^ imgnz=$GLOBALSENDS||"%p"//0||$var_iw,$var_ih||framewh<FF0000|2|2> imgcf=GLOBALIMGNZ<1>||"%p"//1||pruning<0,0,@H-902,@W-1202>||upd<1> ;; размножить небольшое изображение Puzzle.bmp по ширине и по вертикали с красной рамкой под минимальный заданный размер 1202х902 + обрезать до заданного размера, создав в другой панели изображение именем файла
wends=@[tc=AA] mends=<info=i6GLOBALWENDS<1>//> exect=$var_rez=(Ceiling(GLOBALMENDS<1>/7)) xends=??-1||#K$var_rez!!@CRLF0 slist=$GLOBALXENDS||##--delay=15~~''||$$Number(:NUMBER:*7-7)-Number(:NUMBER:*7-2)''~~--delay=250~~''Number(:NUMBER:*7-1)'' GLOBALSLIST<a> ;; для анимационного gif файла под курсором получить специальные параметры
xends=??-1||#K8!!@CRLF© GLOBALXENDS<a> slist=$GLOBALXENDS||©!!:NUMBER:||©!!Number(:NUMBER:*7-7) GLOBALSLIST<a> ;; пример замены "©" на заданную нумерацию

xends=??-1||#K8!!@CRLF© GLOBALXENDS<a> slist=$GLOBALXENDS||©!!:NUMBER:||©!!Number(GLOBALXENDS<0>*7-:NUMBER:*7) GLOBALSLIST<a> ;; пример замены "©" на заданную нумерацию (обратная)

exect=$var_i=Number(ClipGet())||$var_n=Round($var_i)+Mod(Round($var_i),2)||_ViewValues($var_n) ;; если в буфере обмена число нечётное или с плавающей точкой, то округлить его до ближайшего чётного числа в большую сторону

exect=$var_i=Number(ClipGet())||$var_n=Floor($var_i)-Mod(Floor($var_i),2)||_ViewValues($var_n) ;; если в буфере обмена число нечётное или с плавающей точкой, то округлить его до ближайшего чётного числа в меньшую сторону

bends=1,3,5,7??-6,||?V|##|StringRegExpReplace('::','(\d+)(,|$)','Number(${1}+15)${2}') GLOBALBENDS<a> ;; прибавить 15 к числам

bends=1,3,5,7??-6,||?V|##|StringRegExpReplace('::','(\d+)','Number(${1}+15)') GLOBALBENDS<a> ;; прибавить 15 к числам

exect=$var_i=Number(<info=t1-1>)||$var_n=Floor($var_i)-Mod(Floor($var_i),2) bufsr=#L1:$var_n||&&(.+)\R(.+)!!$2~~-~~$1 ;; в содержимом буфера обмена объединить каждые две строки в одну (нечётные - чётные)

slist=%WL||^^*||?V|^^|Number(<info=i1::>/<info=i2::>)=2?'400x':'x400' GLOBALSLIST<a> ;; для выделенных изображений добавить в начало пути: '400x', если ширина в 2 раза больше высоты, в ином случае добавляется 'x400'
slist=%WL||^^*||?V|>>|Assign('var_n',Number(<info=i1::>/<info=i2::>),2)||?V|^^|$var_n=2?'равно':($var_n>2?'больше':'меньше') GLOBALSLIST<a> ;; для выделенных изображений добавить в начало пути: 'равно', если ширина в 2 раза больше высоты, если больше, чем в 2 раза, то 'больше', если меньше, чем в 2 раза, то 'меньше'
sendsslist=$GLOBALSENDS[1]&20||§!!Number(:NUMBER:/10) GLOBALSLIST<a> ;; получить счётчик вида 0.1, 0.2, ..., 1, 1.1

slist=%WL||test<0m!!25=Number(StringRight(@W,2))> GLOBALSLIST<a> ;; из выделенных изображений получить те, у которых значение ширины оканчивается на 25
tabck=0||1:Number(x-1)||1 ;; заблокировать все вкладки слева от открытой в левой панели

tabck=0||Number(x+1):-1||1 ;; заблокировать все вкладки справа от открытой в левой панели

sends=<info=s101|D|Number(@YEAR+1)|1> GLOBALSENDS<a> ;; получить количество дней оставшихся до конца года

aends=x||Number(<info=s101>*1000-10800000) GLOBALAENDS<a> ;; получить время в миллисекундах прошедшее от 1970/01/01 00:00:00 минус 3 часа

rends=100,50??-6, GLOBALRENDS<a> $GLOBALFENDS[1]=>Number(GLOBALRENDS<1>)>=Number(GLOBALRENDS<2>)?GLOBALRENDS<1>:GLOBALRENDS<2> GLOBALFENDS<a> ;; записать данные с условиями

rends=100,50??-6, GLOBALRENDS<a> $GLOBALFENDS[1]=>Number($GLOBALRENDS[1])>=Number($GLOBALRENDS[2])?$GLOBALRENDS[1]:$GLOBALRENDS[2] GLOBALFENDS<a> ;; записать данные с условиями


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru