功能块 STR_FORMAT

该功能块返回一个格式化的字符串。

此功能块对应于C++中的sprintf函数。

注意: 此功能块可以拥有超过两个输入。您可以右键单击该功能块以添加另一个输入。

输入 Format

输入定义了格式化方式,由零个或多个指令组成:普通字符(除了%),它们会直接复制到结果中,以及转换指令,每个指令都有自己的参数调用。

其中,转换指令遵循以下原型:

%[ArgNum$][Flags][Weite][.Präzision]Spezifizierer.
ArgNum

一个整数后跟美元符号$,表示用于转换的输入STR#编号。

Flags
Flag Beschreibung
- 在指定的字段宽度内左对齐;右对齐是默认值
+ 用加号+表示正数;默认情况下,只有负数带有负号输出
(Leerzeichen) 用空格填充结果。这是默认值。
0 从左侧用零填充。对于s指定符,也可以从右侧用零填充。
'(Zeichen) 用指定的字符填充结果。
Weite

一个整数,表示转换结果应具有多少个字符(最小值)。

Präzision

点.后跟一个整数的含义取决于指定符:

  • 对于e、E、f和F指定符:这表示应在小数分隔符后输出多少位小数(默认值为6)。
  • 对于g和G指定符:要输出的最大有效小数位数。
  • 对于s指定符:类似于一个截断点,表示字符串中的最大字符数。

注意: 如果没有为精度提供显式值而仅给出了点,则假定为0。

Spezifizierer
Spezifizierer Beschreibung
% 一个百分号。不需要参数。
b 将参数视为整数并输出二进制数字。
c 将参数视为整数并从ASCII字符集中输出一个字符。
d 将参数视为整数并输出(带符号的)十进制数字。
e 将参数视为科学计数法中的数字(例如1.2e+2)。精度表示小数点后的位数。
E 与指定符e相同,但写一个大写字母(例如1.2E+2)。
f 将参数视为浮点数并输出浮点数(取决于Locale)。
F 将参数视为浮点数并输出浮点数(独立于Locale)。
g 一般格式。
P是精度,如果非零,6如果未指定精度或1如果精度为零。然后,如果通过E的转换将具有X的指数:
如果P > X ≥ -4,则使用f指定符和精度P - (X + 1)进行转换。否则,与e指定符和精度P - 1相同。
G 与指定符g相同,但使用E和F。
o 将参数视为整数并输出八进制数字。
s 将参数视为字符串并输出。
u 将参数视为整数并输出无符号十进制数字。
x 将参数视为整数并输出十六进制数字(使用小写字母)。
X 将参数视为整数并输出十六进制数字(使用大写字母)。

注意: 指定符c忽略填充和宽度。

警告: 尝试使用字符串与宽度指定和预期每个字符超过一字节的字符集结合使用,会导致不可预测的结果。

变量被转换为适合指定符的类型:

Typ Spezifizierer
Zeichenkette s
Integer d, u, c, o, x, X, b
Float g, G, e, E, f, F

输入 STR1..STR#

输入或多个输入定义了要替换的值,这些值在FORMAT输入中指定的字符串中的相应位置。

输出

返回生成的字符串。