【问题标题】:why NaN number?为什么是 NaN 数?
【发布时间】:2019-11-13 11:47:45
【问题描述】:

我正在尝试使用 bhaskara 和 delta 公式计算数字的 delta,但它在消息框中给出 NaN

//Variables declaration
int a = 800, b = 500, c = 350;
double delta, a1, a2;

//Formulas
delta = (b*b) - (4*a*c);
a1 = (-b + Math.Sqrt(delta)) / (2 * a);
a2 = (-b - Math.Sqrt(delta)) / (2 * a);

//Output
MessageBox.Show(a1.ToString());
MessageBox.Show(a2.ToString());

【问题讨论】:

标签: c# nan delta


【解决方案1】:

delta 的值为 -870000。
这不是您可以取平方根的值(无论如何都可以得到real number)。

来自Math.Sqrt docs

【讨论】:

    【解决方案2】:

    正如 Broots 所说,负数的 Math.sqrt 将返回 NaN。有一个 Complex 结构可以满足您的需求:

    Complex c = Complex.Sqrt(-25); // has a value of approximately 0 + 5i
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2012-09-20
      • 1970-01-01
      • 2013-12-17
      • 2023-01-31
      相关资源
      最近更新 更多