sort provides two kinds of numeric sort. This is from the man page:
-g, --general-numeric-sort
compare according to general numerical value
-n, --numeric-sort
compare according to string numerical value
What’s the difference?
General numeric sort compares the numbers 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 alphabetic sort that knows 10 comes after 9.
See http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html