Тип «Число»
Тип Число представляет собой число произвольной точности с фиксированной точкой.
Значение типа Число может быть задано литералом одного из следующих видов:
- Двоичное число: 
0b{0|1}+. - Десятичное число: 
[+|-]{0..9}[.{0..9}]. - Шестнадцатеричное число: 
0x{0..9|a..f|A..F}+. 
Также значение типа Число может быть задано с помощью конструктора, который преобразует строковое представление в соответствующий экземпляр числа. С помощью перегрузки конструктора можно преобразовать число с заданным основанием.
Число состоит из знака, а также целой и дробной частей, разделенных точкой. Для двоичных и шестнадцатеричных чисел задать дробную часть нельзя, так как такие числа могут быть только целыми.
Операции, определенные для значений типа Число, описаны в разделе Операции.
Пример работы с числами
пер А: Число
А = 15          // целое десятичное число
А = 3.141592654 // дробное десятичное число
А = 15/7        // выражение с использованием десятичных чисел
А = 0xff        // шестнадцатеричное число
А = -0xff       // отрицательное шестнадцатеричное число
А = 0b10101     // двоичное число
новый Число("123") -> 123      // целое десятичное число
новый Число("+1.23") -> 1.23   // дробное десятичное число
новый Число("-12.3") -> -12.3  // отрицательное дробное десятичное число
новый Число("1.23e+2") -> 123  // число в экспоненциальной форме
новый Число("-1.23e2") -> -123 // отрицательное число в экспоненциальной форме
новый Число("123", 10) -> 123       // целое десятичное число
новый Число("+4f865", 16) -> 325733 // шестнадцатеричное число
новый Число("cDf65", 16) -> 843621  // шестнадцатеричное число
новый Число("-3E8", 16) -> -1000    // отрицательное шестнадцатеричное число
новый Число("123E-2", 10) -> 1.23   // десятичное число в экспоненциальной форме
Представление чисел в зависимости от локали
В зависимости от текущей локали представление числа будет отличаться:
- В русской локализации в качестве разделителя между целой и дробной частью используется запятая, а группы по три цифры в целой части отделяются неразрывным пробелом — 
123 456,78. - В английской локализации дробная часть отделяется точкой, а группировка целой части выполняется через запятую — 
123,456.78. 
Форматирование чисел
Для форматирования чисел используется встроенный метод Представление(), который принимает как аргумент указанный формат и возвращает строку с числом в этом формате.
В примере ниже для числа 123.456 вызывается метод Представление(). Он представляет это число в формате 'Результат: '6.2, который передается этому методу как аргумент. Результат форматирования помещается в переменную Б:
пер А: Число = 123.456
пер Б = а.Представление("'Результат: '6.2")
Значение пе ременной Б: Результат: 123,46.
При указании формата используется специальный синтаксис. Так, в примере выше форматная строка 'Результат: '6.2 состоит из следующих частей: 'Результат: ' — префикс, 6 — ширина, 2 — точность. Подробнее о синтаксисе форматных строк смотрите ниже.
Синтаксис форматной строки
В общем случае синтаксис форматной строки выглядит следующим образом:
"['префикс'][флаги][ширина][.точность][специальные флаги]['суффикс']"
Вся форматная строка выделяется двойными кавычками. Префикс и суффикс указываются в отдельных одинарных кавычках (для экранирования). Они являются необязательной частью форматной строки, т. е. могут не указываться. Составляющие форматирующей части (флаги, ширина, точность, специальные флаги) должны следовать строго друг за другом в соответствии с синтаксисом.
Префикс
Текстовая часть форматной строки, которая добавляется перед отформатированным числом.
Например, для числа 123.123 применим форматную строку 'знач ='7.2. Получим: знач = 123,12.
При использовании символа одинарной кавычки ' в префиксе его необходимо экранировать другой одинарной кавычкой перед ним: '' (то есть две идущие подряд одинарные кавычки).
Например, для числа 123.123 применим форматную строку 'Значение типа ''Число'' ='7.2. Получим: Значение типа 'Число' = 123,12.
Флаги
Используются непосредственно для форматирования выводимого числа. В отличие от специальных флагов определяются одним символом. Флаги указываются без разделительных знаков в произвольном порядке. При заполнении «свободного места», то есть разницы между исходными и указанными шириной/точностью, заполнитель по умолчанию — пробелы слева.
Список флагов
| Флаг | Описание | Пример | 
|---|---|---|
| 0 | Свободное место заполняется нулями слева. Несовместим с флагом -. | Для числа 123.456 применим форматную строку 08.2. Получим: 00123,46. | 
| - | Свободное место заполняется пробелами справа. Несовместим с флагом 0. | Для числа 123.456 применим форматную строку -7.2'₽'. Получим: 123,46 ₽. | 
| + | Положительные числа выводятся со знаком +. | Для числа 123.456 применим форматную строку +7.2. Получим: +123,46. | 
| _ | Группировка целой части по 3 цифры, начиная с младшего разряда. Формируется в зависимости от локали. | Для числа 123456789 применим форматную строку _10.2. Получим: 123 456 789,00. | 
| ( | Отрицательные числовые значения заключаются в скобки и берутся по модулю. Пишутся без знака -. | Для числа -123.456 применим форматную строку (6.2. Получим: (123,46). | 
Ширина
Определяет общую ширину числа после форматирования (без префикса и суффикса). Если ширина меньше полученного числа (с соблюдением всех флагов, включая специальные), то она динамически расширяется до ширины числа. Если ширина больше результата, то свободное место заполняется в соответствии с указанным флагом. Если ширина не указана, то она будет минимально возможной для вывода отформатированного числа.
Примеры:
- Для числа 
123.123укажем ширину10. Получим:123,123. - Для числа 
123.123укажем ширину1. Получим:123,123. 
Точность
Определяет точность дробной части. Если указанная точность меньше, чем в исходном числе, то значение после десятичного разделителя округляется (по умолчанию: округление к ближайшему целому). Округление настраивается с помощью специального флага (ОК). Если указанная точность больше числа, то дробная часть дополняется нулями с конца. Если точность не указывается, то она соответствует точности исходного числа.
Например, для числа 123.456 укажем точность .2. Получим: 123,46 (символ разделителя целой и дробной части определяется локалью, если в форматной строке не указан другой символ разделителя).
Специальные флаги
Специальные флаги записываются следующим образом: специальный флаг=значение, где значение — это разделитель или режим округления. Специальные флаги используются непосредственно для форматирования выводимого числа. В отличие от обычных флагов определяются не одним символом, а выражением. Специальные флаги разделяются точкой с запятой ; и могут указываться в произвольном порядке. От предыдущей части форматной строки (если есть) также отделяются точкой с запятой.
Пример: 'значение='РД=,'₽'.
Для удобства чтения допускается использование пробела (пробелов) для отделения специального флага от знака присваивания, но не допускается использование пробела после знака присваивания или после знака разделителя, так как в этом случае пробел будет восприниматься встроенным языком как собственно разделитель или часть разделителя.
Пример: 'тест'(+_15.2; РГ =,; РД =.; ОК =ПВВ;'тест'.