0
#include <iostream>
using namespace std;

int main(){
 float const PI = 3.1415926;

int radius = 4;
int peri = 0;
int area = 0;

peri =(float) (PI * 2)* radius;
area = (float) PI * (radius * radius);

cout << "Radius is " << radius << endl;
cout << "Perimeter is " << peri << endl;
cout << "Area is " << area << endl;

return 0;
};

peri 和 area 没有转换为 float 并且总是收到“从 float 转换为 int”的警告,这似乎是问题所在..

4

1 回答 1

1

如果你真的想将 peri 和 area 截断为整数,你应该明确地这样做:

peri=static_cast<int>(2*PI*radius);
area=static_cast<int>(PI*radius*radius);

否则,您会收到警告,并且对于任何阅读您的代码的人来说,这都是一个错误。

于 2013-03-20T02:41:58.323 回答