如何阻止 C++ 四舍五入到最接近的整数

How to stop c++ from rounding to closest integer

我正在做一个圆柱计算器的面积,出于某种原因,C++ 正在四舍五入到最接近的数字,这是我的代码:

int volume()
{
    int radius;
    int height;
    double long volume;
    double pi;
    pi = 3.14;
    cout << "Enter Radius: ";
    cin >> radius;
    cout << "Enter height: ";
    cin >> height;
    volume = radius * radius * height * pi;
    return volume;
}
int main()
{
    cout << "Formula Calculator \n";
    cout << "The volume  is " << volume();
    return 0;
}

它总是将答案四舍五入到最接近的整数请帮助:(

double long volume()
{
    int radius;           //Radius of a cylinder
    int height;           //Height of a cylinder
    double long volume;   //The resulting volume of the cylinder
    double pi = 3.14;     //The constant pi

    cout << "Enter Radius: ";
    cin >> radius;        //User inputs radius of cylinder
    cout << "Enter height: ";
    cin >> height;        //User inputs height of cylinder
    volume = radius *  radius * height * pi ; // v = (pi)(h)(r)^2

    return volume;
}
int main ()
{
    cout << "Formula Calculator \n";
    cout << "The volume  is " << volume();

    return 0;
}

我发现的唯一问题是您函数的声明。您使用 int 而不是用于声明结果量的 double long。还要从主函数的 cvolume() 中删除 c。

该函数返回一个整数并截断小数。

double long volume()
{
  int radius;
  int height;
  double pi;
  pi = 3.14;
  cout << "Enter Radius: ";
  cin >> radius;
  cout<< "Enter height: ";
  cin >> height;

 return (radius *  radius * height * pi);
}
int main ()
{
  cout << "Formula Calculator \n";
  cout << "The volume  is " << volume();
  return 0;
    }