Почему, когда я ставлю нотацию с фиксированной точкой, мой вывод равен 0,00?

Я хочу добавить в программу нотацию с фиксированной точкой, но когда я делаю, конечный результат всегда равен 0,00

Я пытался поставить это

cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);

в разных частях программы, но ничего не меняется.

Вот моя программа:

#include <iostream>
#include <cmath>

using namespace std;

void get_input(double& body1, double& body2, double& distance);
void get_output(double m1, double m2, double d);
double compute_GAF(double m1, double m2, double d); //takes the masses of two bodies and the distance and computes gravitational attractive force between them
const double G = 6.673 * (1/pow(10, 11)); //global constant for Gravity

int main()
{
double m1, m2, d;
char ans;

do
{

cout << "Thanks for using the Gravitational Attractive Force Calculator\n";
cout << endl;

get_input(m1, m2, d);

get_output(m1, m2, d);cout << "Do you want to calculate again? (Y/N)" << endl;
cin >> ans;
cout << endl;

} while (ans == 'y' || ans == 'Y');

return 0;
}

void get_input(double& body1, double& body2, double& distance)
{
using namespace std;

cout << "Enter the mass of the two objects with a space in between:\n";
cin >> body1 >> body2;
cout << "Enter the distance between the objects:\n";
cin >> distance;
cout << endl;

return;
}

void get_output(double m1, double m2, double d)
{
using namespace std;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);

cout << "The Gravitational Attractive Force of the two objects is " << compute_GAF(m1, m2, d);

if (compute_GAF(m1, m2, d) == 1)
cout << " dyne.\n";
else
cout << " dynes.\n";
cout << endl;
return;
}

double compute_GAF(double m1, double m2, double d)
{
double F;

F = (G*m1*m2) / pow(d, 2);

return F;
}

Извините за мой плохой английский и мои плохие навыки программирования.

1

Решение

Возможно, вы устанавливаете слишком низкую точность для вычисляемого числа (т. Е. Вам нужно больше десятичных разрядов).

Пытаться cout.precision(20); вместо этого, например.

Кроме того, вам не нужны эти using namespace std; заявления внутри ваших функций тел. Достаточно одного раза на вершине.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]