我想在我的程序中加上定点符号,但是当我这样做时,最终输出总是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;
}
抱歉我的英语不好,编程能力差。
答案 0 :(得分:1)
您可能正在为计算的数字设置太低的精度(即您需要更多的小数位)。
例如,请尝试使用cout.precision(20);
。
此外,您在函数体内不需要那些using namespace std;
语句。只需一次就可以了。