繁体   English   中英

用C ++计算球体的体积

[英]Calculating volume for sphere in C++

这可能很简单,但是在C ++中计算球体积的正确方法是什么? 我的getArea()似乎是正确的,但是当我调用getVolume()它没有输出正确的数量。 对于radius = 1的球体,它给出了pi的答案,这是不正确的:

double Sphere::getArea() const
{
    return 4 * Shape::pi * pow(getZ(), 2);
}

double Sphere::getVolume() const
{
    return (4 / 3) * Shape::pi * pow(getZ(), 3);
}

你在(4 / 3) 4/3)中使用整数除法。 相反,使用浮点除法: (4.0 / 3.0)

4/3是1,因为整数除法只产生整数。 您可以通过测试代码确认: std::cout << (4/3) << std::endl;

(4 / 3) ,这些都是整数,因此你得到整数除法。 这意味着结果将被截断(1.333 ...变为1)。 使其中一个成为双重,以便在分裂期间将另一个提升为双倍,从而产生正确的结果。

我更喜欢使用(4.0 / 3.0)

(4/3)是一个整数表达式,因此被截断为1.尝试(4.0 / 3.0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM