为什么我必须添加一个小数才能在C++中正确计算此数学



我正在计算一个球体的体积,经过大量的研究,我发现我不能使用:

float sphereRadius = 2.33;
float volSphere = 0;
volSphere = (4/3) * (M_PI) * std::pow(sphereRadius, 3);

但必须添加3.0才能得到正确的答案。

volSphere = (4/3.0) * (M_PI) * std::pow(sphereRadius, 3);

为什么必须添加小数才能获得正确的计算?

(4/3)是一个integer除以另一个integer,这会导致另一个integerinteger不能1.33或类似的东西,所以它被截断为1.使用小数,您告诉它是一个double,并且将integer除以double会产生支持分数的double

最新更新