Skip to content

Latest commit

 

History

History
42 lines (36 loc) · 1.95 KB

0X22更多格式.md

File metadata and controls

42 lines (36 loc) · 1.95 KB

0X22 更多格式

前置知识

  • 0X21 格式化输出

正文

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

后续推荐

  • 0X2A 支持UTF8