# Num - 脚本和图表功能

Num() 格式化数字，即使用第二个参数中指定的格式将输入的数值转换为显示文本。如果省略第二个参数，它将使用数据加载脚本中设置的小数点和千位分隔符。自定义小数位和千分位分隔符的符号为可选参数。

语法：

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

返回数据类型： 双

Num 函数返回同时包含字符串和数字值的双重值。该函数会获取输入表达式的数值，然后生成一个表示此数字的字符串。

参数

| 参数 | 描述 |
| --- | --- |
| number | 可以计算文本字符串值。 |
| format | 指定如何设置结果字符串格式的字符串。如果省略，则使用数据加载脚本中设置的十进制和千位分隔符。<br><br>`Num` 功能支持多种格式选项，可用于不同的数字结构，例如：<br><br>`#,##0`：显示不带小数位的数字。<br><br>`#,##0.00`：显示带两个小数位的数字。<br><br>`##0.00%`：以百分比形式显示带两个小数位的数字。<br><br>`​#,##0;(#,##0)`：格式化括号中显示的负数。<br><br>`$#,##0.00`：将数字格式化为带有 $ 符号的货币。<br><br>`​0.00E+0`：以科学记数法显示数字。 |
| dec\_sep | 指定小数位数字分隔符的字符串。如果省略，则使用数据加载脚本中设置的变量 DecimalSep 的值。<br><br>`Num` 函数支持多种小数位分隔符格式，例如：<br><br>逗号 '`,`'：例如，`$1,000,00` 代表一千美元。<br><br>句号 '`.`'：例如，`€ 1,000.00`。<br><br>连字符 '`-`'：当使用连字符代替传统的句号或逗号作为小数位分隔符时，它显示的值类似`¥1,000-00`。<br><br>有关更多信息，请参阅[DecimalSep](https://help.qlik.com/zh-CN/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DecimalSep.htm)。 |
| thou\_sep | 指定千分位数字分隔符的字符串。如果省略，则使用数据加载脚本中设置的变量 ThousandSep 的值。<br><br>`Num` 函数支持多种千位数字分隔符选项：<br><br>句号 '`.`' ：使用句号作为千位分隔符（在某些欧洲格式中很常见），如果与逗号小数位分隔符结合使用，则显示为 `$1.000,00`。<br><br>空格 ​' '：使用空格作为千位分隔符，这在一些欧洲国家很常见。显示为 `€ 1 000.00`。<br><br>下划线 '`_`' ：使用下划线作为千位分隔符，有时用于技术格式或特定地区格式。显示类似 `$1_000.00` 的值。<br><br>有关更多信息，请参阅[ThousandSep](https://help.qlik.com/zh-CN/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ThousandSep.htm)。 |

有关数字格式设置的更多信息，请参阅[数字格式和时间格式的约定](https://help.qlik.com/zh-CN/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm)。

示例：图表表达式

| 示例 | 结果（返回的字符串值） |
| --- | --- |
| `Num(35648.312)` | 返回 `35648.312`（取决于脚本中的环境变量） |
| `Num(35648.312, '0.0', '.')` | 返回 `35648.3` |
| `Num(35648.312, '0,00', ',')` | 返回 `3,56,48` |
| `Num(35648.312, '#,##0.0', '.', ',')` | 返回 `35,648.3` |
| `Num(35648.312, '# ##0', ',', ' ')` | 返回 `35 648` |

## 示例 - Num 基本原理

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

#### 图表表达式

概览

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中的以下字段：

  * `InputValue`

加载脚本

```
Example:
Load * inline [
InputValue
35648
3564800
356.48
];
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* ` InputValue
                                       `

创建以下度量：

* `=Num(InputDate)`，将值视为使用系统设置格式化的数字。

* `=Num(InputValue, '0.0', '.')`，将值视为使用函数中提供的格式格式化的数字。

* `=Num(InputValue, '0,00', ',')`，将值视为使用函数中提供的格式格式化的数字。

* `=Num(InputValue, '#,##0.0', '.', ',')`，将值视为使用函数中提供的格式格式化的数字。

* `=Num(InputValue, '# ##0', ',', ' ')`，将值视为使用函数中提供的格式格式化的数字。

Results table

| InputValue | Num(InputDate) | Num(InputValue, '0.0', '.') | Num(InputValue, '0,00', ',') | Num(InputValue, '#,##0.0', '.', ',') | Num(InputValue, '# ##0', ',', ' ') |
| --- | --- | --- | --- | --- | --- |
| 356.48 | 356.48 | 356.5 | 3,56 | 356.5 | 356 |
| 35648 | 35648 | 35648.0 | 3,56,48 | 35,648.0 | 35 648 |
| 3564800 | 3564800 | 3564800.0 | 3,56,48,00 | 3,564,800.0 | 3 564 800 |

结果显示了 `Num` 函数如何根据函数表达式中提供的格式显示 `InputValue` 字段的值。

[](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 |

## 示例 – Num 场景

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

#### 图表表达式

概览

数据集包含您希望使用更简单的数字格式呈现的销售数据。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `Customer`
  * `Sales`

加载脚本

```
Example:
Load * inline [
Customer, Sales
Customer A, 2550000
Customer B, 12500
Customer C, 15000
Customer D, 250
];
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* ` Customer
                                       `

创建以下度量：

* `=If(Sales > 1000000, Num(Sales/1000000, '#,##0.00M'), If(Sales > 1000, Num(Sales/1000, '#,##0.00K'), Num(Sales, '#,##0.00')))`，设置值的数字表示。

Results table

| Customer | If(Sales &gt; 1000000, Num(Sales/1000000, '#,##0.00M'), If(Sales &gt; 1000, Num(Sales/1000, '#,##0.00K'), Num(Sales, '#,##0.00'))) |
| --- | --- |
| Customer A | 2.55M |
| Customer B | 12.50K |
| Customer C | 15.00K |
| Customer D | 250.00 |

第 2 列中的度量表达式使用 `Num` 函数以简化的数字格式呈现数据。

[](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 表格示出在加载脚本中使用 `Num`Num 函数来格式化为百分比的结果。

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