我正在设计一个使用二次公式计算2个根的程序。我正在尝试将输出语句root1
和root2
输出,并将数字输出为两位小数(即2.00,5.00等)。但是,当我使用setprecision命令时,它似乎不起作用。例如,当我输入三个点为(1,-1,2)时,我得到的点数(2,-1),而不是(2.00,-1.00),就像我正在寻找的那样。
这是我的代码:
#define _USE_MATH_DEFINES // for C++
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double pointa;
double pointb;
double pointc;
double discriminant1;
double root1;
double root2;
cout << "Please enter a, b and c: ";
cin >> pointa;
cin >> pointb;
cin >> pointc;
discriminant1 = pow(pointb, 2) - (4 * pointa * pointc);
root1 = (-pointb + sqrt(discriminant1)) / (2 * pointa);
root2 = (-pointb - sqrt(discriminant1)) / (2 * pointa);
std::cout << "Root1: " << std::setprecision(3) << root1 << endl;
std::cout << "Root2: " << std::setprecision(3) << root2 << endl;
return 0;
}