Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
Register
Advertisement

Formats a string by substituting arguments.

result = string.format(pattern, ...)
       = format
       = s:format

Arguments[]

pattern
string - Contains directives like %s or %d (see details). Also called the format string.[1]
...
any - Substituted into each directive; the type must be a kind that can convert to the type specified by the directive.

Returns[]

result
string

Details[]

Base Directives Description
%c Character
%d, %i Integer
%e, %E Scientific notation
%f Floating number
%g, %G Floating number or scientific notation
%o Octal
%x, %X Hexadecimal
%s String
%q Escaped string with quotes
%u Unsigned
%% Escaped percent sign
Modifiers Examples Description
Number %5d, %3s Minimum digits or string length with leading spaces
Zero and number %05d, %03s Minimum digits or string length with leading zeroes
Decimal and number %.2f, %.4s Decimal places, significant digits or maximum string length
Plus sign %+d, #+f Leading sign to align with negative values.
Space % d, # f Leading space to align with negative values.
Hash %#o, %#x Include octal/hexadecimal prefixes.
Number and dollar sign %2$d, %1$s Selects arguments out of order.


Example[]

> = string.format("%s %q", "Hello", "Lua user!")   -- string and quoted string
Hello "Lua user!"

> = string.format("%c%c%c", 76,117,97)             -- char
Lua

> = string.format("%e, %E", math.pi,math.pi)       -- exponent
3.141593e+000, 3.141593E+000

> = string.format("%f, %g, %.2f", math.pi, math.pi, math.pi)       -- float and compact float
3.141593, 3.14159, 3.14

> = string.format("%d, %i, %u", -100,-100,-100)    -- signed, signed, unsigned integer
-100, -100, 4294967196

> = string.format("%o, %x, %X", -100,-100,-100)    -- octal, hex, hex
37777777634, ffffff9c, FFFFFF9C

> = string.format("%2$d -> %1$03d", 1, 34)         -- 2nd arg, 1st arg with leading zeroes
34 -> 001

> = string.format("Ratio is %u %%",12)             -- unsigned, escaped %
Ratio is 12 %

Macro Example[]

This macro prints out the time remaining on the Polymorph debuff in seconds, rounded to the nearest whole number:

/run for i=1,40 do local n,_,_,_,_,_,x,_,_=UnitDebuff("focus",i);if (n=="Polymorph")or (n=="Polymorph(Pig)")or (n=="Polymorph(Turtle)")then SendChatMessage('''format("%.0f"''',-1*(GetTime()-x)).." secs left on "..UnitName("focus").."'s CC!","EMOTE");end end 

External links[]

References[]

 
  1. ^ Roberto lerusalimschy 2004-03-10. Programming in Lua.
Advertisement