- 0X21 格式化输出
- 如果希望用小数的形式输出数字(哪怕你给予的替换参数是个整数),就使用占位符%f替代%i。(%F也可以。)
string.format('%f %f %f\n%f %f %f',2345,6,42,65,224,1)
- %f和%F中间也可以加一个浮点数表示对位数的规定。
string.format('%6.2f %6.2f %6.2f',1.234,4532.4,3.56)
- 这个数的整数部分表示浮点数总体应该多少位(包括小数点和小数位)
- 小数点后的数表示应该保留多少位
- 例如%07.3f表示把一个数按浮点形式显示。总体应该为7位(算上小数点)。小数最多3位。不够的位数用0在左侧补齐。
- 上例中如果整数已经超过7位,不会截断整数部分。
- 要把一个数按科学计数法显示就用%e或%E。%g或%G则依据精确值自动选择输出形式。十六进制科学计数法用%a或%A。
string.format('%e %e %e\n%a %a %a',2345,6,42,65,224,1)
- 额外说明一下,十六进制和科学计数法的占位符分别都有两种写法。如果用了大写形式的占位符,输出中用到字母的地方也会大写。例如:
string.format('%#x %#X',897,345)
- %c占位.会被对应位置上参数所对应的字符所替代.例如:
string.format('A%c%cD',66,67)
- 如果希望一个字符串来替代占位符,则使用%s或%q。如果用%q,则字符串替换时会带上双引号。例如:
string.format('%s %q','hello','world')
- 0X2A 支持UTF8