使用公式“(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;
}
答案 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)=浮点值。