OFMT (The GNU Awk User’s Guide)
Next: Printf, Previous: Output Separators, Up: Printing [Contents][Index]
5.4 Controlling Numeric Output with print
When printing numeric values with the print statement, awk internally converts each number to a string of characters and prints that string. awk uses the sprintf() function to do this conversion (see section String-Manipulation Functions). For now, it suffices to say that the sprintf() function accepts a format specification that tells it how to format numbers (or strings), and that there are a number of different ways in which numbers can be formatted. The different format specifications are discussed more fully in Format-Control Letters.
The predefined variable OFMT contains the format specification that print uses with sprintf() when it wants to convert a number to a string for printing. The default value of OFMT is "%.6g". The way print prints numbers can be changed by supplying a different format specification for the value of OFMT, as shown in the following example:
$ awk 'BEGIN {
> OFMT = "%.0f" # print numbers as integers (rounds)
> print 17.23, 17.54 }'
-| 17 18
According to the POSIX standard, awk’s behavior is undefined
if OFMT contains anything but a floating-point conversion specification.
(d.c.)