This is probably an easy one, but is the right way to calculate volume for a sphere in C++? My getArea() seems to be right, but when I call getVolume() it doesn’t output the right amount. With a sphere of radius = 1, it gives me the answer of pi, which is incorrect:
double Sphere::getArea() const
{
return 4 * Shape::pi * pow(getZ(), 2);
}
double Sphere::getVolume() const
{
return (4 / 3) * Shape::pi * pow(getZ(), 3);
}
You’re using integer division in
(4 / 3). Instead, use floating point division:(4.0 / 3.0).4/3is 1, because integer division only produces integers. You can confirm this by test code:std::cout << (4/3) << std::endl;.