两个数字的除法总是返回一个整数值

时间:2017-07-07 14:32:53

标签: c++

使用公式“(4/3)* 3.14 * pow(radius,3)”,返回的数字总是产生一个整数。关于如何从公式中获取浮点数的任何想法?

代码:

#include<iostream>
#include<math.h>

using namespace std;

int main(){
    float radius, v;
    cout<<"Enter value of radius";cin>>radius;
    v = (4/3)*3.14*pow(radius, 3);
    cout<<"volume of sphere: "<<v<<endl;
    system("pause");return 0;
}

3 个答案:

答案 0 :(得分:4)

答案是1,因为4和3是整数,而在C ++中整数除以整数会产生另一个整数,所以4/3 = 1.

但要纠正这一点,你需要做的就是这个, 将整数更改为浮点十进制数,例如, 4可以写成4.0而不是。

(4.0/3)*3.14*pow(radius,3)

多数,你很高兴。

答案 1 :(得分:1)

表达式4/3执行整数除法,并将导致1(导致截断任何小数)。您应该执行浮点划分。

v = (4.0/3.0)*3.14*pow(radius, 3);

答案 2 :(得分:0)

由于4和3都是整数,因为它们的除法也是一个整数,因此要获得浮点值,你需要指定两个值为float(即4.0和3.0) 通过上面的申请你将最终得到这样的东西 (4.0 / 3.0)=浮点值。