Controlling Numeric Output with `print'
=======================================
When the `print' statement is used to print numeric values, `awk'
internally converts the number to a string of characters and prints
that string. `awk' uses the `sprintf' function to do this conversion
(Note: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 Note:Format-Control Letters.
The built-in variable `OFMT' contains the default 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
different format specifications as 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.)