General numeric sort comapres the num,bers as floats, this allows scientific notation eg 1.234E10 but is slower and subject to rounding error (1.2345678 could come after 1.2345679), numeric sort is just a regular sort that know 10 comes after 1
See http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html
‘-g’ ‘--general-numeric-sort’
‘--sort=general-numeric’ Sort
numerically, using the standard C
function strtod to convert a prefix of
each line to a double-precision
floating point number. This allows
floating point numbers to be specified
in scientific notation, like 1.0e-34
and 10e100. The LC_NUMERIC locale
determines the decimal-point
character. Do not report overflow,
underflow, or conversion errors. Use
the following collating sequence:
Lines that do not start with numbers
(all considered to be equal). NaNs
(“Not a Number” values, in IEEE
floating point arithmetic) in a
consistent but machine-dependent
order. Minus infinity. Finite
numbers in ascending numeric order
(with -0 and +0 equal). Plus
infinity.
Use this option only if there is no
alternative; it is much slower than
--numeric-sort (-n) and it can lose information when converting to
floating point.
‘-n’ ‘--numeric-sort’ ‘--sort=numeric’
Sort numerically. The number begins
each line and consists of optional
blanks, an optional ‘-’ sign, and zero
or more digits possibly separated by
thousands separators, optionally
followed by a decimal-point character
and zero or more digits. An empty
number is treated as ‘0’. The
LC_NUMERIC locale specifies the
decimal-point character and thousands
separator. By default a blank is a
space or a tab, but the LC_CTYPE
locale can change this.
Comparison is exact; there is no
rounding error.
Neither a leading ‘+’ nor exponential
notation is recognized. To compare
such strings numerically, use the
--general-numeric-sort (-g) option.