使用格式说明符格式化字符串将数字转化为字符串,或在字符串中插入不显示的字符

对于输出字符串的函数,例如格式化写入字符串数组至电子表格字符串转换,格式说明符使用下列语法元素。双括号([])中的是可选元素。

%[$][-][+][#][^][0][Width][.Precision||_SignificantDigits][{ Unit }][< Embedded information >] Conversion Code

其中Width是一个大于零的数,.Precision_SignificantDigits是大于等于零的数。

对于扫描字符串的函数,例如,扫描字符串电子表格字符串至数组转换,格式说明符使用下列语法元素。

%[Width]Conversion Code

格式化写入字符串格式化写入文件扫描字符串扫描文件函数的格式字符串输入端可使用多个格式说明符,每个格式说明符用于每个可扩展函数的输入或输出。

格式说明符语法元素

下表列出了格式说明符的语法元素。详细信息见格式说明符范例

表 1.
语法元素 说明
% 格式说明符的开始。
$(可选) 使用格式函数时,该修饰符规定了显示变量的顺序。包括代表变量顺序的位数,其后紧接该修饰符。
-(可选) 使用格式化函数时,该修饰符在参数的宽度之内将参数靠左调整,而不是靠右调整。
+(可选) 使用格式化函数时,即使是正数,该修饰符也包括符号。
^(可选) 使用格式函数和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包括所有非空格数字。例如,
  • 3.457有4个有效数字
  • 0.0012有2个有效数字
  • 123000有3个有效数字
注: 一个百分号代码中不可同时使用精度和有效数字。

对于单精度浮点数,NI建议将_Significant Digits设为1~6之间的值。对于双精度和扩展精度浮点数,NI建议将_Significant Digits设为1~13之间的值。

{Unit}(可选) 使用函数转换物理量时(带单位的值),将覆盖VI的原单位。必须使用兼容单位。该语法元素只能与格式化写入字符串函数配合使用。
<嵌入式时间格式>(可选) 包含与T(绝对时间)和t(相对时间)转换代码配合使用的具体时间格式字符串。关于有效的格式字符串,请参见时间格式字符串的格式码。只有%W%D%H%M%S%u用于相对时间。
转换代码 指定怎样扫描或格式化参数的字符。
使用下列用于整型数和定点数的转换代码:
  • x - 十六进制整数(例如,B8)。
  • o-八进制整数(例如,701)。
  • b-二进制整数(例如,1011)。
  • d-带符号的十进制整数。
  • u-不带符号的十进制整数。
使用下列用于浮点数和定点数的转换代码:
  • f-带小数格式的浮点数(例如,12.345)。
  • e-科学计数法表示的浮点数(例如,1.234E1)。
  • g-根据数字的指数,LabVIEW使用fe。如指数大于–4或小于指定的精度,LabVIEW使用f。如指数小于–4或大于指定的精度,LabVIEW使用e。
  • p - 以SI符号表示的浮点数。
使用下列用于字符串的转换代码:
  • s-字符串(例如,abc)。扫描时,s仅与下一个空白字符匹配。一个空白与一个或多个连续空白字符匹配。要扫描一个可能含有白空的字符串,在集合转换代码中使用字符。指定字符串中包含在括号中的所有字符,包括空格和其他空白字符。
  • [ ] - 集合中的字符。[ ]与仅包含括号中指定字符的字符串相匹配。字符匹配区分大小写。只有扫描字符串时,才会用到[ ]转换代码。要在集合中匹配(^)符号,需确保其不是括号后的第一个字符。下列范例显示了集合转换代码中字符的用处。
    • %[aeiou]-匹配只有小写元音字母的字符串。
    • %[0-9a-zA-Z]-匹配含有数字、字母或空格的字符串。可使用连字符在集合中指定字符的范围。
    • %[^,;]-匹配逗号或分号前的字符串,但不包括第一个逗号或分号。
    要匹配一个连字符,将其指定为集合中的第一个或最后一个字符。
使用下列用于时间的转换代码:
  • T-绝对时间。将T用于数值或时间标识控件、常量和显示控件的“显示格式”属性,以及“格式化写入字符串”、“格式化写入文件”、“扫描字符串”和“扫描文件”函数。关于使用绝对时间的范例,请参见格式说明符范例表。T不能与“数组至电子表格字符串转换”、“电子表格字符串至数组转换”、“格式化值”和“扫描值”函数配合使用。时间标识只能按照时间格式,否则返回错误。
  • t-相对时间。将t用于数值或时间标识控件、常量和显示控件的“显示格式”属性,以及“格式化写入字符串”、“格式化写入文件”、“扫描字符串”和“扫描文件”函数。关于使用相对时间的范例,请参见格式说明符范例表。t不能与“数组至电子表格字符串转换”、“电子表格字符串至数组转换”、“格式化值”和“扫描值”函数配合使用。时间标识只能按照时间格式,否则返回错误。
本地化代码 确定LabVIEW将小数部分与整数部分分隔开的是句点还是逗号。这些代码控制数值输出的小数分隔号。这些代码不会产生任何输入或输出。这些代码将为其后的输入输出改变小数分隔号,直到找到下一个%;
  • %,;-逗号小数分隔号。
  • %.;-句点小数分隔号。
  • %;-系统默认分隔号。如不指定分隔号,LabVIEW将使用系统默认的分隔号。
反斜杠符号(\) 指定十六进制数、空格、回格和其他格式选项。

格式说明范例

下表列出了格式说明符的语法元素的范例。

类型 参数 格式字符串 结果字符串 注释
自动格式(%g) 12.00 %#g 12 如指定#,LabVIEW将移除尾部的无效零。如指定g,LabVIEW根据要格式化的数字选择科学表示或浮点表示。
12000000 %#g 1.2E+7
十进制(%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 格式化字符串中的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时,将对带空白的结果字符串进行填充,填充到宽度为nb表示以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是第二个变量。如在格式字符串中为某个变量使用$语法元素,其后的语法元素如果不是以$语法元素打头,则属于下一个变量。如为一个变量使用$语法元素,则也将$作为其他变量的语法元素,以增加可读性。
百分号(%%) %% % %%显示单个%。此格式可用于在字符串中加入百分号。此符号不会为格式化写入字符串扫描字符串函数添加接线端。