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=static_cast<int>(2*PI*radius);
area=static_cast<int>(PI*radius*radius);

そうしないと、警告が表示され、コードを読む人には間違いのように見えます。

于 2013-03-20T02:41:58.323 に答える