C++ Int returns 与 Atom 中相同输入的 double 不同的值
C++ Int returns different value than double for same input in Atom
我正在做求解二次方程的算法。
我输入 A = 4,B = 10,C = 4,这给出了 delta 的值 36。
我的问题是
int delta;
returns 值为 35,并且
double delta;
returns 值为 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;
}
对我有用。对于 Minimum 示例,下面的代码更短更好,不是吗?
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a = 4, b = 10, c = 4;
int delta = pow(b,2) - (4 * a * c);
cout << "Delta = " << delta << endl;
return 0;
}
如果您使用整数运算,则使用整数而不是浮点运算。问题由浮动组成。 pow(b, 2)
的结果可能类似于 99.99999999997
,四舍五入为 int 是 99
。
#include <iostream>
using namespace std;
int main()
{
int a = 4, b = 10, c = 4;
int delta = b * b - (4 * a * c);
cout << "Delta = " << delta << endl;
return 0;
}
我正在做求解二次方程的算法。
我输入 A = 4,B = 10,C = 4,这给出了 delta 的值 36。
我的问题是
int delta;
returns 值为 35,并且
double delta;
returns 值为 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;
}
对我有用。对于 Minimum 示例,下面的代码更短更好,不是吗?
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int a = 4, b = 10, c = 4;
int delta = pow(b,2) - (4 * a * c);
cout << "Delta = " << delta << endl;
return 0;
}
如果您使用整数运算,则使用整数而不是浮点运算。问题由浮动组成。 pow(b, 2)
的结果可能类似于 99.99999999997
,四舍五入为 int 是 99
。
#include <iostream>
using namespace std;
int main()
{
int a = 4, b = 10, c = 4;
int delta = b * b - (4 * a * c);
cout << "Delta = " << delta << endl;
return 0;
}