(gawk.info.gz) Unexpected Results

Info Catalog (gawk.info.gz) String Conversion Precision (gawk.info.gz) Floating Point Issues (gawk.info.gz) POSIX Floating Point Problems
 
 D.3.2 Floating Point Numbers Are Not Abstract Numbers
 -----------------------------------------------------
 
 Unlike numbers in the abstract sense (such as what you studied in high
 school or college math), numbers stored in computers are limited in
 certain ways.  They cannot represent an infinite number of digits, nor
 can they always represent things exactly.  In particular,
 floating-point numbers cannot always represent values exactly.  Here is
 an example:
 
      $ awk '{ printf("%010d\n", $1 * 100) }'
      515.79
      -| 0000051579
      515.80
      -| 0000051579
      515.81
      -| 0000051580
      515.82
      -| 0000051582
      Ctrl-d
 
 This shows that some values can be represented exactly, whereas others
 are only approximated.  This is not a "bug" in `awk', but simply an
 artifact of how computers represent numbers.
 
    Another peculiarity of floating-point numbers on modern systems is
 that they often have more than one representation for the number zero!
 In particular, it is possible to represent "minus zero" as well as
 regular, or "positive" zero.
 
    This example shows that negative and positive zero are distinct
 values when stored internally, but that they are in fact equal to each
 other, as well as to "regular" zero:
 
      $ gawk 'BEGIN { mz = -0 ; pz = 0
      > printf "-0 = %g, +0 = %g, (-0 == +0) -> %d\n", mz, pz, mz == pz
      > printf "mz == 0 -> %d, pz == 0 -> %d\n", mz == 0, pz == 0
      > }'
      -| -0 = -0, +0 = 0, (-0 == +0) -> 1
      -| mz == 0 -> 1, pz == 0 -> 1
 
    It helps to keep this in mind should you process numeric data that
 contains negative zero values; the fact that the zero is negative is
 noted and can affect comparisons.
 
Info Catalog (gawk.info.gz) String Conversion Precision (gawk.info.gz) Floating Point Issues (gawk.info.gz) POSIX Floating Point Problems
automatically generated by info2html