Next: Printf, Previous: Output Separators, Up: Printing [Contents][Index]
printWhen 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.)