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.