Выражения: Типы данных и константы

Допустимые типы данных:
bool — логический (0 или 1);
int — целый (4-байта);
real — вещественный с двойной точностью;
string — строковой произвольной длины;
datetime — дата-время (число секунд, прошедших с 1 января 1970);
error — ошибка.

Приведение типов в выражениях осуществляется автоматически, но можно использовать также функции преобразования типа (см. ниже). Типы bool и datetime являются подмножествами int. При приведении числовых типов к bool положительные значения преобразуются в true, отрицательные и 0 — в false. Тип error эквивалентен строковому и содержит сообщение об ошибке.

Целочисленные константы можно задавать как в десятичной системе счисления, так и в бинарной или шестнадцатеричной, например:

0b0100.1010 — двоичное 74
0xFFFF — шестнадцатеричное 65535
В двоичных и шестнадцатеричных константах точка служит для визуального отделения разрядов и при вычислениях игнорируется.

Вещественные константы задаются либо в экспоненциальной форме, либо с плавающей точкой:

2.345e+8
2345E-8
20.345
Строковые константы записываются в двойных кавычках. В строковые константы можно включать символы с любыми кодами, в том числе следующие спецсимволы:
\ddd — символ, заданный десятичным кодом ddd;
\xHH — символ, заданный шестнадцатеричным кодом HH;
\a — символ AlertBel \x07
\b — символ Backspace \x08
\t — символ HorizontalTab \x09
\n — символ Newline, \x0A или \x0D\x0A
\v — символ VerticalTab, \x0B
\f — символ Formfeed, \x0C
\r — символ CarriageReturn, \x0D
\\ — символ обратного слэша \
\" — символ двойной кавычки "

Константы даты-времени задаются как строковые с преобразованием типа. По умолчанию разделителем года, месяца и дня в датах является символ "/". Разделитель можно изменить командой Syntax:

datetime ("2005/08/21 11:15:20").
Неинициализированные значения, которым в матрице данных соответствует пропуск или ???, имеют значение empty. Преобразование empty к числовым типам даёт 0, к строковому типу — "empty".

По умолчанию в библиотеке предопределены значения некоторых констант, которые можно использовать во всех выражениях:

empty  = empty;
false  = 0;
true   = 1;
PI     = 3.1415926535897931;
MINUTE = 60;
HOUR   = 60 * 60;
DAY    = 60 * 60 * 24;
WEEK   = 60 * 60 * 24 * 7;