簡體   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