(gawk.info.gz) Arithmetic Ops

Info Catalog (gawk.info.gz) Conversion (gawk.info.gz) Expressions (gawk.info.gz) Concatenation
 
 5.5 Arithmetic Operators
 ========================
 
 The `awk' language uses the common arithmetic operators when evaluating
 expressions.  All of these arithmetic operators follow normal
 precedence rules and work as you would expect them to.
 
    The following example uses a file named `grades', which contains a
 list of student names as well as three test scores per student (it's a
 small class):
 
      Pat   100 97 58
      Sandy  84 72 93
      Chris  72 92 89
 
 This programs takes the file `grades' and prints the average of the
 scores:
 
      $ awk '{ sum = $2 + $3 + $4 ; avg = sum / 3
      >        print $1, avg }' grades
      -| Pat 85
      -| Sandy 83
      -| Chris 84.3333
 
    The following list provides the arithmetic operators in `awk', in
 order from the highest precedence to the lowest:
 
 `- X'
      Negation.
 
 `+ X'
      Unary plus; the expression is converted to a number.
 
 `X ^ Y'
 `X ** Y'
      Exponentiation; X raised to the Y power.  `2 ^ 3' has the value
      eight; the character sequence `**' is equivalent to `^'.
 
 `X * Y'
      Multiplication.
 
 `X / Y'
      Division;  because all numbers in `awk' are floating-point
      numbers, the result is _not_ rounded to an integer--`3 / 4' has
      the value 0.75.  (It is a common mistake, especially for C
      programmers, to forget that _all_ numbers in `awk' are
      floating-point, and that division of integer-looking constants
      produces a real number, not an integer.)
 
 `X % Y'
      Remainder; further discussion is provided in the text, just after
      this list.
 
 `X + Y'
      Addition.
 
 `X - Y'
      Subtraction.
 
    Unary plus and minus have the same precedence, the multiplication
 operators all have the same precedence, and addition and subtraction
 have the same precedence.
 
    When computing the remainder of `X % Y', the quotient is rounded
 toward zero to an integer and multiplied by Y. This result is
 subtracted from X; this operation is sometimes known as "trunc-mod."
 The following relation always holds:
 
      b * int(a / b) + (a % b) == a
 
    One possibly undesirable effect of this definition of remainder is
 that `X % Y' is negative if X is negative.  Thus:
 
      -17 % 8 = -1
 
    In other `awk' implementations, the signedness of the remainder may
 be machine-dependent.
 
      NOTE: The POSIX standard only specifies the use of `^' for
      exponentiation.  For maximum portability, do not use the `**'
      operator.
 
Info Catalog (gawk.info.gz) Conversion (gawk.info.gz) Expressions (gawk.info.gz) Concatenation
automatically generated by info2html