Copyright (C) 2000-2012 |
GNU Info (gawk.info)OFMTControlling 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 |