C程序自动舍入

时间:2016-11-15 12:32:54

标签: c rounding

编辑:问题已经解决,我现在尽量让它尽可能清楚。

当我制作一个程序来计算圆的面积时,我将“3.1415926535”分配给一个常数浮点Pi。当我在我的程序中使用它作为areaCircle = Pi * radius * radius,其中radius是一个整数而areaCircle是一个浮点数,程序打印出类似“7.000000”的东西。我原以为它会返回一个小数,例如“7.123456”或其他东西

编辑:这是代码,如果你们需要它:

int radius
float circumference,areaCircle;
const int PI = 3.14159265358979323846264338327;
printf("Enter the radius of the circle: \n");
scanf("%d",&radius);
circumference = PI*2*radius;
areaCircle = PI*radius*radius;
printf("The circumference of a circle with radius %d is %f and its area is %f\n",radius,circumference,areaCircle);

2 个答案:

答案 0 :(得分:0)

在您发布的代码中,您已将PI声明为int。尝试:

const float PI = 3.14159265358979323846264338327;

答案 1 :(得分:0)

  

如果你更清楚地提出问题,那将是非常好的。

虽然我有一些建议......

  • 您的程序显示areaCircle Value as floating data,因为,areaCircle是浮点数。它也在计算浮点数。

  • Logically -Radius can't be Integer类型。

  • 您可以设置all data types as float / double

  • 并且还可以将此用于语句中 控制小数点后的数字%.2f%.0f或您需要的任何值。