Commands that accept or produce floating point numbers employ the floating point representation of the underlying system, and suffer from rounding error, overflow, and similar floating-point issues. Almost all modern systems use IEEE-754 floating point, and it is typically portable to assume IEEE-754 behavior these days. IEEE-754 has positive and negative infinity, distinguishes positive from negative zero, and uses special values called NaNs to represent invalid computations such as dividing zero by itself. For more information, please see David Goldberg's paper What Every Computer Scientist Should Know About Floating-Point Arithmetic.
Commands that accept floating point numbers as options, operands or
input use the standard C functions strtod
and strtold
to
convert from text to floating point numbers. These floating point
numbers therefore can use scientific notation like 1.0e-34
and
-10e100
. Modern C implementations also accept hexadecimal
floating point numbers such as -0x.ep-3
, which stands for
−14/16 times 2^-3, which equals −0.109375. The
LC_NUMERIC locale determines the decimal-point character.
See Parsing of Floats.