【发布时间】:2018-03-08 15:45:03
【问题描述】:
我正在做求解二次方程的算法。
我输入 A = 4, B = 10, C = 4,得到的 delta 值为 36。
我的问题是
int delta;
返回值 35,并且
double delta;
返回值 36。
我正在使用 Atom 文本编辑器,其余代码如下。
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a,b,c;
int delta;
int x1, x2;
cout << "Rownanie kwadratowe w postaci ax^2 + bx + c = 0" << endl;
cout << "Podaj wartosc A" << endl;
cin >> a;
cout << "Podaj wartosc B" << endl;
cin >> b;
cout << "Podaj wartosc C" << endl;
cin >> c;
delta = pow(b,2) - (4 * a * c);
cout << "Delta = " << delta << endl;
return 0;
}
【问题讨论】:
-
int->double -
可能是舍入错误。试试
delta = (pow(b,2)+0.5) - (4 * a * c);或者更好,delta = b*b - 4 *a * c -
这是一个舍入错误,为什么不直接使用
double?
标签: c++ atom-editor