# Num — функция скриптa и диаграммы

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

Синтаксис:

Num(number[, format[, dec\_sep [, thou\_sep]]])

Возвращаемые типы данных: двойное значение

Функция Num возвращает двойное значение, которое включает строковое и числовое значения. Функция берет числовое значение входного выражения и создает строку, представляющую собой число.

Аргументы:

Аргументы

| Аргумент | Описание |
| --- | --- |
| number | Число для изменения формата. |
| format | Строка, указывающая, как будет отформатирована полученная строка. Если не указано, то используются десятичные и тысячные разделители, установленные в скрипте загрузки данных. |
| dec\_sep | Строка, определяющая десятичный разделитель. Если не указано, используется значение переменной DecimalSep, установленное в скрипте загрузки данных. |
| thou\_sep | Строка, определяющая разделитель тысяч. Если не указано, используется значение переменной ThousandSep, установленное в скрипте загрузки данных. |

Для получения дополнительной информации о форматировании чисел см. [Условия для форматов числа и времени](https://help.qlik.com/ru-RU/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm).

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Num.htm)

#### Пример: Выражение диаграммы

Пример:

В следующей таблице показаны результаты, когда поле A равно 35648.312.

Результаты

| Символ | Результат |
| --- | --- |
| Num(A) | 35648.312 (зависит от переменных среды в скрипте) |
| Num(A, '0.0', '.') | 35648.3 |
| Num(A, '0,00', ',') | 35648,31 |
| Num(A, '#,##0.0', '.', ',') | 35,648.3 |
| Num(A, '# ##0', ',', ' ') | 35 648 |

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Num.htm)

#### Пример: Скрипт загрузки

Скрипт загрузки

Num может использоваться в скрипте загрузки для форматирования числа даже в том случае, если в скрипте уже указаны десятичный разделитель и разделитель тысяч. Приведенный ниже скрипт загрузки содержит десятичный разделитель и разделитель тысяч, однако Num используется в нем для форматирования данных разными способами.

В Редакторе загрузки данных создайте новый раздел, добавьте образец скрипта и запустите его. Затем добавьте на лист приложения как минимум поля, указанные в столбце с результатами, чтобы увидеть результаты.

```
SET ThousandSep=',';
SET DecimalSep='.';
Transactions:
Load
*,
Num(transaction_amount) as [No formatting],
Num(transaction_amount,'0') as [0],
Num(transaction_amount,'#,##0') as [#,##0],
Num(transaction_amount,'# ###,00') as [# ###,00],
Num(transaction_amount,'# ###,00',',',' ') as [# ###,00 , ',' , ' '],
Num(transaction_amount,'#,###.00','.',',') as [#,###.00 , '.' , ','],
Num(transaction_amount,'$#,###.00') as [$#,###.00],
;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, discount, customer_id, size, color_code
3750, 20180830, 12423.56, 23, 0,2038593, L, Red
3751, 20180907, 5356.31, 6, 0.1, 203521, m, orange
3752, 20180916, 15.75, 1, 0.22, 5646471, S, blue
3753, 20180922, 1251, 7, 0, 3036491, l, Black
3754, 20180922, 21484.21, 1356, 75, 049681, xs, Red
3756, 20180922, -59.18, 2, 0.333333333333333, 2038593, M, Blue
3757, 20180923, 3177.4, 21, .14, 203521, XL, Black
];
```

Таблица Qlik SenseQlik Sense, в которой представлены результаты применения разных способов использования функции NumNum в скрипте загрузки. В четвертом столбце таблицы представлен пример некорректного использования форматирования.

| No formatting | 0 | #,##0 | # ###,00 | # ###,00 , ',' , ' ' | #,###.00 , '.' , ',' | $#,###.00 |
| --- | --- | --- | --- | --- | --- | --- |
| -59.18 | -59 | -59 | -59###,00 | -59,18 | -59.18 | $-59,18 |
| 15.75 | 16 | 16 | 16###,00 | 15,75 | 15.75 | $15,75 |
| 1251 | 1251 | 1,251 | 1251###,00 | 1 251,00 | 1,251.00 | $1,251.00 |
| 3177.4 | 3177 | 3,177 | 3177###,00 | 3 177,40 | 3,177.40 | $3,177.40 |
| 5356.31 | 5356 | 5,356 | 5356###,00 | 5 356,31 | 5,356.31 | $5,356.31 |
| 12423.56 | 12424 | 12,424 | 12424###,00 | 12 423,56 | 12,423.56 | $12,423.56 |
| 21484.21 | 21484 | 21,484 | 21484###,00 | 21 484,21 | 21,484.21 | $21,484.21 |

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FormattingFunctions/Num.htm)

#### Пример: Скрипт загрузки

Скрипт загрузки

Num может использоваться в скрипте загрузки для форматирования числа в качестве процентного значения.

В Редакторе загрузки данных создайте новый раздел, добавьте образец скрипта и запустите его. Затем добавьте на лист приложения как минимум поля, указанные в столбце с результатами, чтобы увидеть результаты.

```
SET ThousandSep=',';
SET DecimalSep='.';
Transactions:
Load
*,
Num(discount,'#,##0%') as [Discount #,##0%]
;
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, discount, customer_id, size, color_code
3750, 20180830, 12423.56, 23, 0,2038593, L, Red
3751, 20180907, 5356.31, 6, 0.1, 203521, m, orange
3752, 20180916, 15.75, 1, 0.22, 5646471, S, blue
3753, 20180922, 1251, 7, 0, 3036491, l, Black
3754, 20180922, 21484.21, 1356, 75, 049681, xs, Red
3756, 20180922, -59.18, 2, 0.333333333333333, 2038593, M, Blue
3757, 20180923, 3177.4, 21, .14, 203521, XL, Black
];
```

Таблица Qlik SenseQlik Sense, в которой представлены результаты использования функции NumNum в скрипте загрузки для форматирования процентных значений.

| Discount | Discount #,##0% |
| --- | --- |
| 0.333333333333333 | 33% |
| 0.22 | 22% |
| 0 | 0% |
| .14 | 14% |
| 0.1 | 10% |
| 0 | 0% |
| 75 | 7,500% |