如何将 Complex 转换为 double

How to cast Complex to double

我有以下表达式:

Math.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0))

ReSharper 发现错误 "argument Numeric.Complex isn't assignable to type double"。最好的投射方式是什么? C# 是否有内置方法,或者我不想在代码中编写一些代数来实现它?

我在 google 中没有发现任何有用的信息,大多数问题都是关于从 double 到 Complex 的转换。

k0 和 X 是双倍的。

更新:

感谢@GrantWinney

var result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));

整个函数是

double Psi = A1 * Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0)) + B1 * Complex.Exp((-Complex.ImaginaryOne) * new Complex(k0 * X, 0.0));

Psi 必须用作y 轴坐标。来自@pmcoltrane 的好问题。我想我需要真实的部分。有谁知道我是对的吗?以前没画过复杂的图

A1 和 B1 是复杂的。

Complex class 有自己的方法,与 Math class.

中的许多可用方法相同
Complex result = Complex.Exp(Complex.ImaginaryOne * new Complex(k0 * X, 0.0));

至于将其转换为 double,有两个部分需要考虑……"real" 值和 "imaginary" 值。两者都可用作 double 值,可通过属性访问:

double realPart = result.Real;
double imaginaryPart = result.Imaginary;