格式说明符语法
- 更新时间2025-08-27
- 阅读时长11分钟
使用格式说明符格式化字符串、将数字转化为字符串,或在字符串中插入不显示的字符。
对于输出字符串的函数,例如格式化写入字符串和数组至电子表格字符串转换,格式说明符使用下列语法元素。双括号([])中的是可选元素。
%[$][-][+][#][^][0][Width][.Precision||_SignificantDigits][{ Unit }][< Embedded information >] Conversion Code
其中Width是一个大于零的数,.Precision和_SignificantDigits是大于等于零的数。
对于扫描字符串的函数,例如,扫描字符串和电子表格字符串至数组转换,格式说明符使用下列语法元素。
%[Width]Conversion Code
格式化写入字符串、格式化写入文件、扫描字符串和扫描文件函数的格式字符串输入端可使用多个格式说明符,每个格式说明符用于每个可扩展函数的输入或输出。
格式说明符语法元素
下表列出了格式说明符的语法元素。详细信息见格式说明符范例。
| 语法元素 | 说明 |
|---|---|
| % | 格式说明符的开始。 |
| $(可选) | 使用格式函数时,该修饰符规定了显示变量的顺序。包括代表变量顺序的位数,其后紧接该修饰符。 |
| -(可选) | 使用格式化函数时,该修饰符在参数的宽度之内将参数靠左调整,而不是靠右调整。 |
| +(可选) | 使用格式化函数时,即使是正数,该修饰符也包括符号。 |
| ^(可选) | 使用格式函数和e或g转换代码时,该元素将数格式化为科学计数法,其中指数为3的倍数。 |
| #(可选) | 使用格式化函数时,该修饰符移除尾部的无效零。如数值无小数部分,该修饰符会将有效数字精度之外的数值强制为零。 |
| 0(可选) | 使用格式化函数时,使用该修饰符,不带-修饰符,函数将用零而不是空格填充数值参数左边的多余空间,以达到最小宽度。 |
| Width(可选) | 使用扫描函数(如扫描字符串)时,Width元素指定使用的字段的最大宽度。LabVIEW处理参数时扫描最大数量的字符。使用格式化函数时,Width元素指定输出字段的最小宽度。该宽度不是最大宽度。LabVIEW使用适量的字符格式化参数,而不是截断参数。LabVIEW将根据调整的类型对参数的左侧和右侧填充空格。如Width未提供或为0,则输出长度仅为包含经转换的输入参数所需的长度。 |
| .Precision或_Significant Digits(可选) | 使用格式化函数时,.或_控制显示的位数。如使用.,LabVIEW将其后的数字作为精确度说明符,指定小数点右边的位数。如使用_,LabVIEW将其后的数字作为显示格式使用的指定有效位数。
.Precision - 与浮点表示法使用时,该元素指定小数点右边的位数。如没有.,LabVIEW使用的精度为6个数字。如.为0,LabVIEW将不插入精度。与字符串参数配合使用时,.Precision指定扫描字段的最大宽度。LabVIEW截取的字符串比该长度更长。 _Significant Digits - 显示舍入为指定位数的数据。LabVIEW仅出于显示目的舍入数据,不影响原始数据。.Precision仅影响小数点右边的位数,_Significant Digits包括所有非空格数字。例如,
注: 一个百分号代码中不可同时使用精度和有效数字。 对于单精度浮点数,NI建议将_Significant Digits设为1~6之间的值。对于双精度和扩展精度浮点数,NI建议将_Significant Digits设为1~13之间的值。 |
| {Unit}(可选) | 使用函数转换物理量时(带单位的值),将覆盖VI的原单位。必须使用兼容单位。该语法元素只能与格式化写入字符串函数配合使用。 |
| <嵌入式时间格式>(可选) | 包含与T(绝对时间)和t(相对时间)转换代码配合使用的具体时间格式字符串。关于有效的格式字符串,请参见时间格式字符串的格式码。只有%W、%D、%H、%M、%S和%u用于相对时间。 |
| 转换代码 | 指定怎样扫描或格式化参数的字符。 使用下列用于整型数和定点数的转换代码:
使用下列用于浮点数和定点数的转换代码:
使用下列用于字符串的转换代码:
使用下列用于时间的转换代码:
|
| 本地化代码 | 确定LabVIEW将小数部分与整数部分分隔开的是句点还是逗号。这些代码控制数值输出的小数分隔号。这些代码不会产生任何输入或输出。这些代码将为其后的输入输出改变小数分隔号,直到找到下一个%;。
|
| 反斜杠符号(\) | 指定十六进制数、空格、回格和其他格式选项。 |
格式说明范例
下表列出了格式说明符的语法元素的范例。
| 类型 | 参数 | 格式字符串 | 结果字符串 | 注释 |
|---|---|---|---|---|
| 自动格式(%g) | 12.00 | %#g | 12 | 如指定#,LabVIEW将移除尾部的无效零。如指定g,LabVIEW根据要格式化的数字选择科学表示或浮点表示。 |
| 12000000 | %#g | 1.2E+7 | ||
| 十进制(%d) | 12.67 | score= %d%% | score= 13% | 如指定%d,LabVIEW将以十进制格式显示整数。
|
| 浮点型(%f) | 12.67 | Temp: %5.1f | Temp: 12.7 | 格式化字符串中的5表示宽度为5,1表示小数点右边的位数,即精度。 |
| 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 | ||
| 科学表示法(%e) | 12.67 | %.3e | 1.267E+1 | 添加^,改为工程表示法,其中指数为3的倍数。 |
| 12.67 | %^.3e | 12.670E+0 | ||
| SI符号(%p) | 12000000 | %.2p | 12.00M | .2表示在结果字符串中精度为2个数字。值_2表示在结果字符串中有2个有效数字。%p添加SI前缀。 |
| 12000000 | %_2p | 12M | ||
| 十六进制(%x) | 12 | %02x | 0C | A - 表示结果字符串靠左调整。0表示结果字符串以零填充。数值指定了结果字符串的宽度。值为–n时,将对带空白的结果字符串进行填充,填充到宽度为n。b表示以2为底 o表示以8为底,x表示以16为底。 |
| 八进制(%o) | 12 | %06o | 000014 | |
| 二进制(%b) | 12 | %b | 1100 | |
| 相对时间(%t) | 91.80 | %.2t | 01:31.80 | LabVIEW将已用时间显示为整数个星期(%W)、日(%D)、小时(%H)、分钟(%M)、秒(%S)和分数秒(%u)。更多时间格式代码,见时间格式字符串的格式码。 |
| 91.8 | %<小时:%H 分:%M 秒:%S>t | Hours:00 Minutes:01 Seconds:31 | ||
| 绝对时间(%t) | 00:00:00.000 AM 1/1/2001 (通用时间) | %<%.3X %x>T | 12:00:00.000 AM 01/01/2001 | %T指绝对时间。< and >括号中的任何信息,表示怎样对绝对时间格式化。该格式,包括其中的标点,根据计算机的区域设置而改变。时间根据计算机的时区设置改变。更多时间格式代码,见时间格式字符串的格式码。 |
| 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 | 添加^,在通用时间中格式化时间。 | |
| 字符串(%s) | Smith John | Name: %s, %s. | Name: Smith, John. | 只有使用格式化写入字符串函数,字符串才有效。在第二个例子中,格式字符串指定最多使用字符串Hello, World中的六个字符,然后填充空白。所以,字符串总长度为10。 |
| Hello, World | String: %10.6s | String: Hello, | ||
| 变量顺序(%$) | Smith John | %2$s %1$s | John Smith | 在该例中,Smith是第一个变量,John是第二个变量。如在格式字符串中为某个变量使用$语法元素,其后的语法元素如果不是以$语法元素打头,则属于下一个变量。如为一个变量使用$语法元素,则也将$作为其他变量的语法元素,以增加可读性。 |
| 百分号(%%) | 无 | %% | % | %%显示单个%。此格式可用于在字符串中加入百分号。此符号不会为格式化写入字符串或扫描字符串函数添加接线端。 |