While writing a program I came across finding the cube root of a number in one of my functions.
when I used the below code, I was getting an incorrect value for the cube root (1
was getting printed for n = 64
).
public static void cubicPairs(double n)
{
double root = (System.Math.Pow(n, (1/3)));
Console.WriteLine(root);
}
Now after I changed the code slightly to this,
public static void cubicPairs(double n)
{
double root = (System.Math.Pow(n, (1.0/3.0))); //Changed how second parameter is passed
Console.WriteLine(root);
}
I got root = 3.9999999999999996
(while debugging) but the method was printing 4
(which is correct).
Why is there a difference between the two values and if this has to do with the second parameter to the System.Math.Pow()
method (i.e, 1.0/3.0
which is a recursive value), what should I use to find cube root so that I get 4
(while debugging) rather than 3.9999999999999996
?