对于Atom中的相同输入,C ++ Int返回的值不同于double

时间:2018-03-08 15:45:03

标签: c++ atom-editor

我正在做解决二次方程的算法。

我输入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;
}

2 个答案:

答案 0 :(得分:0)

它对我有用。对于最小例子,Bellow代码更短更好,不是吗?

#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,向下舍入到整数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;
}

答案 1 :(得分:0)

double pow(double x,double y)是幂的默认语法 所以你只能使用浮点作为基础和力量。

  

所以你必须使用base作为浮点