什么是允许复数和虚数的C#数据类型?

时间:2018-01-25 05:01:10

标签: c# complex-numbers

我正在创建一个C#项目,它接受两个复数的用户输入,并对它们完成数学运算。我遇到的问题是如何解析 i 作为-1的平方根。

double operandA = 0;
double operandB = 0;
double result = 0;
string textA, textB;
string error = "The value you entered is invalid, try again";

private void plus_Btn_Click(object sender, EventArgs e)
{
    result = operandA + operandB;
}

private void Subtract_btn_Click(object sender, EventArgs e)
{
    result = operandA - operandB;
}

private void mult_Btn_Click(object sender, EventArgs e)
{
    result = operandA * operandB;
}

private void divide_Btn_Click(object sender, EventArgs e)
{
    result = operandA / operandB;
}

private void textBox2_Leave(object sender, EventArgs e)
{
    textB = textBox2.Text;
    if (double.TryParse(textB, out operandB))
        operandB = double.Parse(textB);
    else
    {
        MessageBox.Show(error);
        textBox2.Select();
    }
}

private void textBox1_Leave(object sender, EventArgs e)
{
    textA = textBox1.Text;
    if (double.TryParse(textA, out operandA))
        operandA = double.Parse(textA);
    else
    {
        MessageBox.Show(error);
        textBox1.Select();
    }
}

它对常规数字,小数和负数都可以正常工作,但我无法弄清楚如何处理我需要的 i 的值。有人可以帮忙吗?有人建议我使用System.Numeric.Complex,但每当我尝试使用"使用System.Numerics.Complex"或者只是"使用System.Numerics",它表示这种类型/名称空间不存在于“系统”中。

2 个答案:

答案 0 :(得分:7)

如果您想支持复数操作,则应考虑使用System.Numerics.Complex

Complex c = Complex.Sqrt(-1);
Console.WriteLine(c + 1);

有关此类型的文档,请参阅here

答案 1 :(得分:2)