格式说明符语法
- 更新时间2026-10-22
- 阅读时长13分钟
理解LabVIEW格式说明符语法,用于格式化输出或扫描输入的格式字符串。
格式化函数的格式说明符语法
格式化函数使用完整格式说明符语法:
%[$][-][+][#][^][0][Width][.Precision∥_Significant Digits][{Unit}][<Embedded Time Format>]Conversion Code
其中
- 宽度必须为大于0的数字
- 精度或有效数字必须为大于或等于0的数字
- 双括号[]表示可选元素。格式说明符中无需包含文本[]字符,除非有特定的语法元素需要。
- ∥表示如选择.精度或_有效数字,必须选择其中之一。
- 将语法中的文本替换为合适的语法元素。
扫描函数的格式说明符语法
扫描函数使用简化的格式说明符语法:
%[Width]Conversion Code
其中宽度必须为大于0的数字
- 双括号[]表示可选元素。格式说明符中无需包含文本[]字符。
- 将语法中的文本替换为合适的语法元素。
格式说明符语法元素
格式说明符支持特定的语法元素,这些语法元素定义了LabVIEW函数如何解析输入字符串并生成输出字符串。理解用于创建所需输出字符串的格式说明符语法。
%分隔符
表示格式说明符开始的所需元素。
修改量
使用可选修饰符元素优化格式字符串创建的输出。
| 语法元素 | 格式化函数或扫描函数 | 说明 |
|---|---|---|
| $ | 正在格式化 | 指定显示变量的顺序。包括代表变量顺序的位数,其后紧接该修饰符。 |
| - | 正在格式化 | 左对齐参数宽度,而不是右对齐参数宽度。 |
| + | 正在格式化 | 即使数字为正数,也包括符号。 |
| ^ | 正在格式化 |
|
| # | 正在格式化 | 删除尾部的零。如数值无小数部分,该修饰符会将有效数字精度之外的数值强制为零。 |
| 0 | 正在格式化 | 不带- 修饰符时,在数值参数左侧使用零填充多余的空格,而不是空格,以达到最小宽度。 |
| 宽度 |
|
|
| .Precision或_Significant Digits | 正在格式化 | 控制显示的位数,其中精度或有效数字为数字。 备注 一个百分号代码中不可同时使用精度和有效数字。
|
| {Unit} | 正在格式化 | 使用函数转换物理量时(带单位的值),将覆盖VI的原单位。必须使用兼容单位。 备注 该语法元素只能与格式化写入字符串函数配合使用。 |
| <嵌入时间格式> | 正在格式化 | 包含与T(绝对时间)和t(相对时间)转换代码配合使用的具体时间格式字符串。关于有效的嵌入式时间格式字符串,请参考时间特定格式代码。 |
转换代码
指定怎样扫描或格式化参数的字符。扫描函数和格式化函数所需的元素。
数字转换代码
| 转换代码 | 支持的数值 | 说明 |
|---|---|---|
| x |
|
十六进制整数(例如,B8)。 |
| o |
|
八进制整数(例如,701)。 |
| b |
|
二进制整数(例如,1011)。 |
| d |
|
有符号十进制整数。 |
| u |
|
无符号十进制整数。 |
| f |
|
带小数格式的浮点数(例如,12.345)。 |
| e |
|
科学计数法表示的浮点数(例如,1.234E1)。 |
| g |
|
自动格式化。根据数字的指数,使用f或e。
|
| p |
|
SI计数法表示的浮点数。 |
- 布尔值:0表示FALSE,1表示TRUE
- 枚举:解析枚举项的数值索引值
字符串的转换代码
| 转换代码 | 说明 |
|---|---|
| s | 字符串(例如,abc)
|
| [ ] | 集合中的字符:与仅包含括号中指定字符的字符串相匹配。 备注 只有扫描字符串时,才会用到[ ]转换代码,而不是格式化字符串。 字符匹配区分大小写。 下列字符在[ ]转换代码中具有特殊含义:
下列范例显示了集合转换代码中字符的用处。
|
- 布尔值:解析False和True
- 枚举:解析枚举项的字符串标签
- 已命名的引用句柄,如DAQmx通道或VISA资源名称
- 路径
时间转换代码
| 转换代码 | 说明 |
|---|---|
| T | 绝对时间。将T用于数值或时间标识控件、常量和显示控件的显示格式属性,以及格式化写入字符串、格式化写入文件、扫描字符串和扫描文件函数。 备注 T不能与数组至电子表格字符串转换、电子表格字符串至数组转换、格式化值和扫描值函数配合使用。 时间标识只能按照时间格式,否则返回错误。 |
| t | 相对时间。将t用于数值或时间标识控件、常量和显示控件的显示格式属性,以及格式化写入字符串、格式化写入文件、扫描字符串和扫描文件函数。 备注 t不能与数组至电子表格字符串转换、电子表格字符串至数组转换、格式化值和扫描值函数配合使用。 时间标识只能按照时间格式,否则返回错误。 |
本地化代码
确定LabVIEW将小数部分与整数部分分隔开的是句点还是逗号的可选序列。
这些代码控制数值输出的小数分隔号。这些代码不会产生任何输入或输出。这些代码将为其后的输入输出改变小数分隔号,直到找到下一个%;。
| 本地化代码 | 说明 |
|---|---|
| %,; | 逗号小数分隔号。 |
| %.; | 句点小数分隔号。 |
| %; | 系统默认分隔号。如不指定分隔号,LabVIEW将使用系统默认的分隔号。 |
文字字符
如需在输入字符串中添加字符,可在格式字符串中添加文字字符。可在格式字符串中使用转义序列插入特定字符。
| 转义序列 | 输出 | 说明 |
|---|---|---|
| %% | % | 避免与定义格式说明符开始的%分隔符冲突。 |
| \> | > | 避免与结束嵌入时间格式修饰符的>分隔符冲突。 |
| 反斜杠符号(\) | 取决于反斜杠代码 | 指定十六进制数、空格、回格和其他格式选项的字符序列。 关于反斜杠代码的更多信息,见反斜杠('\')代码显示。 |
格式说明符语法范例
通过实际范例了解LabVIEW格式说明符如何将输入参数转换为输出字符串。
自动格式化(%g)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 12.00 | %#g | 12 |
| 12000000 | %#g | 1.2E+7 |
如指定#,LabVIEW将移除尾部的无效零。
如指定g,LabVIEW根据要格式化的数字的指数选择科学表示或浮点表示。
十进制(%d)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 12.67 | score= %d%% | score= 13% |
如指定%d,LabVIEW将以十进制格式显示整数。
- 对于任意位大小的有符号或无符号整数,LabVIEW显示该整数时不进行修正。
- LabVIEW将浮点值取整为有符号64位整数。NaN和大于有符号64位整数最大值的值将取整为有符号64位整数的最大值,即9223372036854775807。如需记录的值大于有符号64位整数的最大值,必须使用转换为无符号64位整型函数明确地将值转换为无符号64位整数。
浮点型(%f)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 12.67 | Temp: %5.1f | Temp: 12.7 |
| 12.67 N | %5.3f | 12.670 N |
| 12.67 N | %5.3{mN}f | 12670.000 mN |
| 12.67 N | %5.3{kg}f | 12.670 ?kg |
- 格式字符串中的5指定宽度为5。.后的数字指定小数点右边的位数,即精度。
- 只有使用格式化写入字符串函数,单位才有效。带单位的范例演示了格式说明符与物理量的交互方式。
- 用户可将单位转换为其他单位。
- 问号表示格式说明符中的单位与输入单位有冲突。
科学表示法(%e)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 12.67 | %.3e | 1.267E+1 |
| 12.67 | %^.3e | 1.2670E+0 |
添加^,改为工程表示法,其中指数为3的倍数。
SI表示法(%p)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 12000000 | %.2p | 12.00M |
| 12000000 | %_2p | 12M |
- .2表示在结果字符串中精度为2个数字。
- _2表示在结果字符串中有2个有效数位。
- %p代码添加SI前缀。
十六进制(%x)、八进制(%o)和二进制(%b)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 12 | %02x | 0C |
| 12 | %06o | 000014 |
| 12 | %b | 1100 |
b(二进制)是基数2。o(八进制)是基数8。x(十六进制)是基数16。
- 可使用-修饰符左对齐结果字符串。
- 0修饰符表示用零填充得到的字符串。
- 格式说明符中的数字指定结果字符串的宽度。
例如,一个修饰符-n用空格填充得到宽度为n的字符串。
相对时间(%t)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 91.80 | %.2t | 01:31.80 |
| 91.8 | %<小时:%H 分:%M 秒:%S>t | Hours:00 Minutes:01 Seconds:31 |
LabVIEW按以下方式格式化已用时间:
- 完整周(%W)
- 完整天数(%D)
- 完整小时(%H)
- 完整分钟(%M)
- 完整秒(%S)
- 秒的小数部分(%digitu)
关于嵌入式时间格式代码的更多信息,见时间特定格式代码。
绝对时间(%T)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| 00:00:00.000 AM 1/1/2001(通用时间) | %<%.3X %x>T | 12:00:00.000 AM 01/01/2001 |
| 00:00:00.000 AM 1/1/2001(通用时间) | %<%Y.%m.%d>T | 2001.01.01 |
| 00:00:00.000 AM 1/1/2001(通用时间) | %^<%.3X %x>T | 06:00:00.000 AM 12/31/2000 |
%T指绝对时间。
- 嵌入时间格式(<和>之间)中包含的任何信息都表明如何格式化绝对时间。关于嵌入式时间格式代码的更多信息,见时间特定格式代码。
- 该格式,包括其中的标点,根据计算机的区域设置而改变。时间根据计算机的时区设置改变。
- 添加^,在通用时间中格式化时间。
字符串(%s)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| Smith John | Name: %s, %s. | Name: Smith, John. |
| Hello, World | String: %10.6s | String: Hello, |
- %s对格式化和扫描均有效。%s可用于字符串和文件。
- 在第一个范例中,格式字符串使用多个格式说明符。要实现该结果,请执行以下操作:
- 在格式化写入字符串的输入1中输入族名(Smith)。
- 展开格式化写入字符串,单击并拖曳函数底部,添加第二个输入。将给定名字(John)提供给结果输入2。
- 输入提供的格式字符串。由于格式字符串包含两个%分隔符,格式字符串包含两个格式说明符。格式字符串中格式说明符的数量必须与函数的输入数量相匹配。LabVIEW将不属于格式说明符的字符解析为要添加至结果字符串的文本。
- 在第二个范例中,.6控制字符串的精度。.6指定字符串Hello, World中最多使用6个字符。10是宽度:LabVIEW用空格填充字符串,因此字符串的总长度等于10。
变量顺序(%$)范例
| 参数 | 格式字符串 | 结果字符串 |
|---|---|---|
| Smith John | %2$s %1$s | John Smith |
在该例中,Smith是第一个变量,John是第二个变量。
- 如在格式字符串中为某个变量使用$,其后的语法元素如果不是以$打头,则属于下一个变量。
- 如需提高变量使用$的可读性,可在字符串中的其他变量上使用$。
相关内容
- 关于格式说明符
格式说明符定义了LabVIEW函数解析字符串的方式。了解格式说明符的术语,以及它们用于格式化字符串或扫描字符串时的区别。
- LabVIEW中的单位
在LabVIEW中,您可以将物理测量单位与浮点数值数据相关联。例如,使用单位可以简化不同物理测量之间的转换,并简化物理量的算术运算。
- 数值输入控件和显示控件可接受的字符