Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
script:data_type_number [18/05/2013 15:24] |
script:data_type_number [29/10/2020 16:32] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== number ===== | ||
+ | |||
+ | == Описание == | ||
+ | |||
+ | Числовое значение произвольной длины с поддержкой десятичной точки.\\ | ||
+ | |||
+ | |||
+ | == Синтаксис == | ||
+ | |||
+ | Значение может быть задано либо числом из множества {..., -2, -1, 0, 1, 2, ...}, либо любым вещественным числом.\\ | ||
+ | Целые числа могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или, с помощью функции number(), любой другой системе счисления, с необязательным предшествующим знаком (- или +). | ||
+ | |||
+ | * Для записи в шестнадцатеричной системе счисления, необходимо поставить перед числом префикс 0x. | ||
+ | * Для записи в восьмеричной системе счисления, необходимо поставить перед числом префикс 0 (нуль). | ||
+ | \\ | ||
+ | * В качестве разделителя разрядов можно использовать пробел или знак подчеркивания "_" (не путать с разделителем целой и дробной частей) | ||
+ | |||
+ | \\ | ||
+ | <code> | ||
+ | var n; | ||
+ | n = 42; // десятичная форма целого числа | ||
+ | n = 42.99; // десятичная форма вещественного числа | ||
+ | n = 156 234 759; // можно использовать пробел в качестве разделителя групп разрядов (касается только десятичной формы) | ||
+ | n = 235_532_645; // а можно и знак подчеркивания (касается только десятичной формы) | ||
+ | n = 0x11; // шестнадцатеричная форма | ||
+ | n = 0123765; // восьмеричная форма (с лидируюшим нулем) | ||
+ | n = integer("135", 11); // создание целого числа по произвольному основанию (в данном случае по основанию 11) | ||
+ | |||
+ | var a = 1; | ||
+ | var b = 123456789; | ||
+ | var c = 124098712358079634897623487612349721340345908734589763487362872638349587345796349782634987.2340947362407364; | ||
+ | println("Sum is " + (a + b + c)); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | == Операции == | ||
+ | |||
+ | | ''+'' |сложение |''println(5 + 4);''| | ||
+ | | ''-'' |вычитание (**Внимание!** Пробелы с двух сторон от знака обязательны(!).)|''println(7 - 3);''| | ||
+ | | ''*'' |умножение |''println(4 * 5);''| | ||
+ | | ''/'' |деление |''println(8 / 4);''| | ||
+ | | ''^'' |возведение в степень |''println(5 ^ 2);''| | ||
+ | | ''%'' |деление по модулю |''println(5 % 2);''| | ||
+ | | ''~'' |конкатенация операндов как строковых |''println(5 ~ 7);''| | ||
+ | | ''=='' |сравнение |''println(5 == 7);''| | ||
+ | | ''<> ( != )'' |сравнение |''println(5 != 7);''| | ||
+ | | ''<'' |сравнение |''println(5 < 7);''| | ||
+ | | ''>'' |сравнение |''println(5 > 7);''| | ||
+ | |||
+ | |||
+ | == Преобразование в number == | ||
+ | |||
+ | Преобразование выполняется функцией toNumber(value) по следующим правилам: | ||
+ | * строки преобразуется в число если у неё есть лидирующие цифры | ||
+ | * дата преобразуется в число, равное количеству секунд | ||
+ | * массивы преобразуются в число, равное размеру массива | ||
+ | Во всех других случаях будет 0. | ||
+ | |||
+ | <code> | ||
+ | println(toNumber("-.5sdf")); // -0.5 | ||
+ | println(toNumber([24, 76, 85])); // 3 | ||
+ | </code> | ||
+ | |||
+ | == Проверка типа == | ||
+ | |||
+ | <code> | ||
+ | println(isNumber(5.5)); // true | ||
+ | println(isInteger(5.5)); // false, т.к. есть десятичная точка | ||
+ | </code> | ||
+ | |||
+ | |||
+ | == Объектные методы == | ||
+ | |||
+ | Отсутствуют. | ||