Eine weitere Möglichkeit mit l3fp, dem *floating point*-Modul von expl3:
\documentclass{article}
\usepackage{expl3,xparse}
\ExplSyntaxOn
\cs_new:Npn \cs_new_protected:Npn \typ_wurzel:n #1
{
\fp_compare:nNnTF
{ round(sqrt(#1)) } = { sqrt(#1) }
{ \fp_eval:n { sqrt(#1) } }
{ \sqrt{#1} }
}
\NewDocumentCommand \Wurzel {m} { \ensuremath{\typ_wurzel:n {#1}} }
\ExplSyntaxOff
\begin{document}
\Wurzel{1} \par
\Wurzel{10} \par
\Wurzel{100} \par
\Wurzel{1000} \par
\Wurzel{10000} \par
\Wurzel{100000} \par
\Wurzel{1000000} \par
\Wurzel{1000000.0000001} \par
\end{document}
![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/wurzel.png