use Math::BigFloat; sub SqrRoot { my $num = Math::BigFloat->new( shift ); my $iterations = shift || 50; my $guess = Math::BigFloat->new( $num / 2 ); for ( 1..$iterations ) { $guess = (( $num / $guess ) + $guess ) / 2; } return $guess; } #### use Math::BigFloat; sub SqrRoot { my $num = Math::BigFloat->new( shift ); my $iterations = shift || 50; my $guess = Math::BigFloat->new( $num / 2 ); my $temp = Math::BigFloat->new(); for ( 1..$iterations ) { $temp = Math::BigFloat->new( $num / $guess ); print ("$num / $guess = $temp\n"); $temp += $guess; $guess = $temp / 2; print ("$guess\n----------\n"); } return $guess; }