【问题标题】:C++ Int returns different value than double for same input in Atom [duplicate]对于Atom中的相同输入,C ++ Int返回不同于double的值[重复]
【发布时间】: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;
}

【问题讨论】:

标签: c++ atom-editor


【解决方案1】:

它对我有用。对于最低示例,波纹管代码更短更好,不是吗?

#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;
}

【讨论】:

    猜你喜欢
    • 2019-09-25
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多