Calculate the cube root of a number The goal of this code golf is to create a program or function that calculates and outputs the cube root of a number that's given as input.
The rules:


No external resources
No use of built-in cube root functions.
No use of methods/operators that can raise a number to a power (that includes square root, 4th root, etc.).
Your function/program must be able to accept floating-point numbers and negative numbers as input.
If the cube root is a floating-point number, then round it to 4 numbers after the decimal point.
This is a code golf, the shortest code in bytes wins.


Test cases:

27 --&gt; 3
64 --&gt; 4
1  --&gt; 1
18.609625 --&gt; 2.65
3652264 --&gt; 154
0.001 --&gt; 0.1
7  --&gt; 1.9129


You can use all test cases above to test negative numbers (-27 --&gt; -3, -64 --&gt; -4 ...)
Haskell - 35

c n=(iterate(\x-&gt;(x+n/x/x)/2)n)!!99


Example runs:

c 27  =&gt;  3.0
c 64  =&gt;  4.0
c 1  =&gt;  1.0
c 18.609625  =&gt;  2.6500000000000004  # only first 4 digits are important, right?
c 3652264  =&gt;  154.0
c 0.001  =&gt;  0.1
c 7  =&gt;  1.9129311827723892
c (-27)  =&gt;  -3.0
c (-64)  =&gt;  -4.0


Moreover, if you import Data.Complex, it even works on complex numbers, it returns one of the roots of the number (there are 3):

c (18:+26)  =&gt;  3.0 :+ 1.0


The :+ operator should be read as 'plus i times'