format - Format a string in the style of sprintf format formatString ?arg arg ...? This command generates a formatted string in the same way as the ANSI C sprintf procedure (it uses sprintf in its implementation). FormatString indicates how to format the result, using % conversion specifiers as in sprintf, and the additional arguments, if any, provide values to be substituted into the result. The return value from format is the formatted string. More at: http://purl.org/tcl/home/man/tcl8.4/TclCmd/format.htm ---- Tips and Tricks with format You can use [[format]] to produce unsigned integers for display (but don't reckon with them - for expr they're still signed!): % format %u -1 4294967295 See [floating-point formatting] for discussion on how to write format strings to handle floats... ---- To make numbers look nice: set fah [format "%0.2f" [expr $temperature_cel * 9 / 5 + 32]] ---- Color formatting: set color [format #%02x%02x%02x $r $g $b] ---- A limited formatting of decimals to characters is available in other languages, e.g. CHR() in Basic. If you use that more often, here's a cute shortcut: interp alias {} chr {} format %c % set a [chr 49][chr 48] 10 ---- See [Narrow formatting] for short rendering of big integers, with powers of 1024: % fixform 12345678 11.7M ---- this method should get format string and explain the format structure. this is a fast scatch. proc explainFormat {formatStr vars} { set index 1 foreach frm [split $formatStr "%"] { set extra "" set size 0 regexp {([0-9]+)([duioxXcsfegG])(.*)} $frm => size type extra if {$size==0} { set size [string length $frm] } else { set frm "%$size$type [lindex $vars 0]" set vars [lrange $vars 1 end] set size [string trimleft $size 0] } for {set i 0} {$i<2} {incr i} { set newIndex [expr {$size +$index -1}] puts "$index-$newIndex '$frm'" set index [expr {$newIndex +1}] if {$extra==""} { break } else { set frm $extra set size [string length $extra] } } } } %explainFormat hello%02s000%3d $a $b 1-5 'hello' 6-7 '%02s $a' 8-10 '000' 11-13 '%3d $b' ---- [Tcl syntax help] - [Arts and crafts of Tcl-Tk programming] - [Category Command]