As uli said, siuntix is recommended. I use it to typeset all numbers.
Example
\documentclass{minimal}
\usepackage{siunitx}
\sisetup{locale=UK}
\begin{document}
Lorem Ipsum is simply \SI{10.5}{\kilo\meter} dummy text of the printing.
Lorem Ipsum has been the \num{2e-19} industry's standard dummy text ever since the
1500s, when an unknown printer took a galley of type and scrambled it to
make a type \SI{2,6}{\volt\per\meter} specimen book. It has survived not only five centuries, but
also the leap into electronic typesetting, remaining essentially unchanged.
It was popularised in the 1960s with the release of Letraset sheets
containing Lorem Ipsum passages, and more recently with desktop publishing
software like Aldus PageMaker including versions of Lorem Ipsum.
\end{document}

Note the handling of 10.5 and 2,6 (both with . in output) and of 2e-9. The behavior of \per (in \volt\per\meter) is customizable.
I didn’t found a solution to write soemthing like \num{2^3}. Does anybody know if this is possible?
As said in the comments it is possible to use \num[parse-numbers=false]{2^3}. But this affects an e12 part too.
10\,kmoutside of math mode. The\,adds a half-space which is the neatest looking gap. – Mark S. Everitt Dec 5 '11 at 11:11