ID : 278
Sprintf
功能
将数据转换为指定格式,作为字符串返回。
解说
格式中可指定任意字符串以及用于转换数据并输出的转换指定字符串。
一个转换指定字符串将转换一个作为自变量指定的数据。存在多个转换指定字符串时,按照转换指定字符串的记述顺序,从开头开始转换作为自变量指定的数据。
如下所示,指定转换指定字符串。
%[标志][显示位数]转换指定符号
将格式中开头带有'%'的字符串视为转换指定字符串,因此,要输出'%'时记述为“%%”。
- 转换指定符号
指定符号 含义 d、i 带10进制符号的整数 o 无8进制符号的整数 x、X 无16进制符号的整数(X以大写形式输出) e、E 指数形式浮动小数点数(E以大写形式输出) f 小数形式浮动小数点数 g、G e或f形式中适合的一种(G以大写形式输出) c 字符 s 字符串 - 标志(选项)
标志 含义 - 区域的左侧 + 通常输出符号 空格 数值为正或0时输出空格代替符号 # 对输出字符串附加以下处理。
- o转换时在数字开头附加“0”。
- x、X转换时在数字开头附加“0x”或“0X”。
- e、E、f、g、G转换时无条件附加小数点。
- g、G转换时也要输出小数点后无需添加的'0'。
对于其它转换指定符号无效。
0 输出字符数低于显示位数时输出'0'
数值时可指定填充零。
指定示例 输出结果 sprintf("[%08.3f]", 123.45678)
[0123.457]
sprintf("[%04d]", 1)
[0001]
通过指定负号,可左对齐输出。
指定示例 输出结果 sprintf("[%-16s]", "It is great.")
[It is great. ]
sprintf("[%-8.3f]", 123.45678)
[123.457 ]
sprintf("[%-4d]", 1)
[1 ]
- 显示位数(选项)
以下述形式指定显示位数。
・在所有位数或精度中指定10进制的值。[所有位数][.精度]
・如下表所示,精度的含义因指定符号而异。
指定符号 含义 未指定时(默认值) d、i、o、x、X 最小位数 1位数 e、E、f 小数点后的位数 6位数 g、G 最大有效位数 6位数 c 精度指定无效 1个字符 s 最大字符数 数据的字符数
无精度的数值指定,仅有句号‘.’时,视为指定0。
指定示例 输出结果 sprintf("[%8.3f]", 123.45678)
[ 123.457]
sprintf("[%8.3e]", 1234.5678)
[1.235e+003]
sprintf("[%16s]", "It is great.")
[ It is great.]
sprintf("[%.8s]", "It is great.")
[It is gr]
注意事项
Sprintf中小数点使用“.”(句号)、位数分隔符使用“,”(逗号),与语言无关。小数点、位数分隔符因语言而异,因此要进行与语言一致的标注时,请使用Format函数。
应用示例
'!TITLE“转换成指定格式,作为字符串输出”
'将十进制的200转换成十六进制表示的字符串
Sub Sample_SPrintf
Dim aaa As String
'将十进制的200转换成十六进制的字符串
aaa = Sprintf(“10进制的[%d]在16进制中为[&H%X]。”,200,200)
'在讯息输出视窗中显示“10进制的[200]在16进制中为[&HC8]。”
PrintDbg aaa
End Sub
ID : 278