Как остановить c ++ от округления до ближайшего целого числа - PullRequest
0 голосов
/ 27 марта 2020

Я делаю область калькулятора цилиндров и по какой-то причине 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;
}

Всегда округляет ответ до ближайшего целого числа. Pls help (

Ответы [ 2 ]

1 голос
/ 27 марта 2020
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, который вы использовали для объявления полученного тома. Также удалите c из cvolume() в вашей основной функции.

0 голосов
/ 27 марта 2020

Функция возвращает целое число и усекает десятичное число.

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;
    } 
...