GNU Info

Info Node: (gawk.info)OFMT

(gawk.info)OFMT


Next: Printf Prev: Output Separators Up: Printing
Enter node , (file) or (file)node

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.)


automatically generated by info2www version 1.2.2.9